Spring
-
스프링 핵심 원리 (4) - 컴포넌트 스캔Web/Spring 2023. 8. 18. 03:56
1. 컴포넌트 스캔과 의존관계 자동 주입 - 스프링 빈을 등록할 때 자바코드나 Xml을 통해 설정 정보를 직접 등록했음 - 설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능 있다. - 의존관계 자동 주입하는 @Autowired 기능도 제공한다. @Configuration @ComponentScan public class AutoAppConfig{ } > 컴포넌트 스캔을 사용하려면, 설정 정보에 @ComponentScan을 붙여주면 된다. > @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. @Configuration도 스캔 대상이다. @Component public class MemoryMemberRepository implements MemberRep..
-
스프링 핵심 원리 (3) - 싱글톤 컨테이너Web/Spring 2023. 8. 17. 15:22
1. 스프링 컨테이너의 이점 (싱글톤) 1.1 앱 어플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생 - 스프링 어플리케이션은 대부분 웹 어플리케이션임 - 웹 어플리케이션은 보통 여러 고객이 동시 요청한다. AppConfig appConfig = new AppConfig() MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); - 설정 클래스인 순수 DI 컨테이너 AppConfig를 사용해서 memberService를 생성해보자 - memberService()메서드는 내부적으로 생성자를 사용하여 구현체를 생성하므로, 요청시..
-
스프링 핵심 원리 (2) - 스프링 컨테이너와 스프링 빈Web/Spring 2023. 8. 17. 12:14
1. 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); - 위와 같이 스프링 컨테이너 생성, ApplicatoinContext는 인터페이스이다. (구현객체 어노테이션~,xml~등) - 스프링 컨테이너는 XML기반 혹은 애노테이션 기반으로 만들 수 있다. 1.1 스프링 컨테이너 생성 과정 - ApplicationContext 구현객체를 생성하면, 스프링 컨테이너에 빈 저장소가 생성되고, 파라미터로 넘어온 구성 정보를 통해 스프링 빈 저장소가 채워진다. - 빈 이름은 메서드명, 빈 객체는 리턴 값으로 채워진다. - 빈 이름은 직접 부여할 수 있다.( @Bean(na..
-
스프링 핵심 원리 (1) - 예제 순수 자바 to 스프링 컨테이너Web/Spring 2023. 8. 16. 18:49
- 객체 지향 프로그래밍의 원리에 맞게 회원 및 주문 서비스를 만들어보자 - 객체 지향 설계에서 협력 - 역할 - 책임의 관계는 매우 중요하다. 역할: 객체가 수행할 책임들을 의미하고, 다형적인 특징을 보여준다. 책임: 객체가 수행해야할 행위 공용인터페이스 - 객체지향- 다형적 특징은 역할과 구현을 분리함으로써 달성할 수 있다. 캡슐화: - 데이터 숨김, 내부 구현 숨김,메시지를 통한 데이터 접근 -> 객체 자율성 부여 - 오류의 범위 캡슐 내부화 -> 유지보수에 유리 타입: 객체를 나누는 기준 -> 할 수 있는 책임(행위)에 따라 객체 분리(classify) 클래스: 객체를 생성할 수 있도록 언어적 차원에서 지원된 정적 객체 생성 방법 - 객체지향적 설계에서 가장 중요한 것은 협력관계를 통해 적절히 책..
-
Spring MVC02 - 다중파일 업로드Web/Spring 2023. 6. 30. 23:23
1. 파일 업로드를 위한 준비 API, servlet-context.xml설정 다중 파일 업로드를 위해 API를 다운받자. commons-fileupload, commons-io commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1.4 스프링 컨테이너에 servlet-context.xml 파일 업로드를 위한 클래스와 property를 설정해야한다. - 업로드할 파일의 최대사이즈와, 임시파일사이즈, 인코딩타입 등을 미리 정해두자 1.2 뷰 페이지 만들기 다중파일업로드 스프링 이용한 다중 파일 업로드 구현 Panel Content 아이디: 이름: 파일추가: 업로드 나프2탄고 form에 enctype ="multipart/form-data"로..
-
Spring MVC02 - Ajax MemberListWeb/Spring 2023. 6. 29. 21:49
- Servlet-jsp에서 ajax를 이용해서 회원리스트 보기를 했던 것과 동일한 작업을 할 것이다. 1. 화면 및 javascript 구성 회원리스트 출력 function btnClick(){ $.ajax({ url : "", type : "get", dataType : "json", success : resultHtml. error : function(){alert("error");} }); } function resultHtml(data){ console.log(data); var html = ""; html += " "; html += " 번호"; html += " 아이디"; html += " 비밀번호"; html += " 이름"; html += " 나이"; html += " 이메일"; html..
-
Spring MVC02 - 어노테이션을 이용한 Mapper 인터페이스 사용Web/Spring 2023. 6. 29. 21:19
- 사실 @Mapper 없어도 mybatis-spring scan을 통해 알아서 관리된다. (같은 패키지에 있고, namespace와 인터페이스명 같다면) - 어노테이션 이용방법 - 복잡한 sql아니면, 그냥 어노테이션으로 관리해도 된다. public interface MemberMapper { @Select("select * from member") public List memberList(); // 메서드 이름 sql id매칭 중요 @Insert(" insert into member(id, pass, name, age, email, phone)\r\n" + " values(\r\n" + " #{id},\r\n" + " #{pass},\r\n" + " #{name},\r\n" + " #{age},\r\..
-
Spring MVC02 - Mapper Interface와 XML이용한 CRUDWeb/Spring 2023. 6. 29. 21:10
- 기존 프로젝트에 DAO객체를 없애고 다른 방법으로 DB를 다루는 방식이 존재한다. - 인터페이스를 정의하고, 추상메서드와 sql을 연결하는 방법이다. (인터페이스 메서드명, mapper xml에 id랑 연결) DAO없이 인터페이스를 통해 DB작업을 하고 싶다면, 1. mapper 인터페이스 생성하고, @Mapper 어노테이션 사용 2. root.xml에 어노테이션과 scan등록하기 3. mapper파일 namespace와 인터페이스 이름 맞추기 (되도록 같은 경로에 두기) 4. 메서드 명과 xml에 각 태그에 id가 일치시키기 1. Mapper 인터페이스 생성 kr.bit.mapper 패키지와 MemberMapper 인터페이스를 정의해 두었다. @Mapper // MyBatis(SqlSessionFa..