분류 전체보기 (272) 썸네일형 리스트형 12월 22일 SpringBoot 어노테이션 방식 1.어노테이션을 사용한다. @PostConstruct @PreDestroy Bean으로 생성할 class에서 DI주입 완료후 사욜될 메서드에 @postConstruct를 붙여준다. 또한 사용완료후 사용될 메서드엔 @preDestroy를 붙이고 @Bean으로 객체를 사용한다. 이 방법은 최신 스프링에서 가장 권장하는 방법이다./ 어노테이션 하나만 붙이면 되어서 매우 편리한다 javax의 기술이다. 스프링 종속기술이 아니다. 자바표준기술이라는 뜻으로 다른 컨테이너에서도 동작한다. 컴포넌트 스캔방법과 잘어울린다. 단점은 외부라이브러리에는 적용하지 못한다., 그래서 라이브러리 사용시엔 @Bean(init)방법을 사용한다. 라이브러리를 사용하는 경우 이외에는 이 방법을 가장 많이 사용한다. 12월 20일 SpringBoot 빈생명주기 확인방법 2.빈 등록 초기화 , 소멸 메소드 아무것도 상속받지 않고 Bean으로 생성할 클래스에 init로 사용할 메서드와 close로 사용할 메소드를 만든다. 이후 Bean 생성시 Bean(initmethod = "init" , destroymethod = "close") 형싱으로 생성하면 되는데 initmethod에는 주입 완료 후 사용할 메소드 destroymethod 에는 완료후 사용할 메소드를 각각 넣는다. 1.메서드 이름을 자유롭게 줄 수 있다. 2.스프링 빈이 스프링 코드에 의존하지 않는다 3. 코드가 아니라 설정정보를 사용하기 떄문에 코드를 고칠 수 없는 외부라이브러리에도 초기화 , 종료 메서드를 적용할 수 있다. Bean Destroy에는 특병한 기능이 하나 있는데 라이브러리는 대부분 close .. 12월 19일 SpringBoot 생명주기 확인방법 1.인터페이스로 확인 Bean으로 생성할 객체 class에 InitializingBean . DisposableBean 이후 인터페이스 상속 InitializingBean에서 afterPropertiesSet메소드를 override한다 afterPropertiesSet은 Bean생성후 @AutoWired로 의존관계주입이 끝나면 실행되는 메소드이다. DisPosableBean에서는 destroy메소드를 overried destroy는 bean의 사용이 끝난후 적용되어 안전하게 close할수 있게 해준다 인터페이스 방식의 단점 1.이 인터페이스는 스프링 전용이다 . 해당코드는 스프링 전용 인터페이스에 의존한다., 2.override받은 메서드의 이름을 변경할 수 없다. 3.별도의 라이브 러리를 적용할 수 없.. 12월 18일 SpringBoot 빈 생명주기 데이터 베이스 커넥션풀 이나 네트워크 소켓처럼 애플리케이션 시작시점에 필요한 연결을 미리 해주도 해플리케이션 종료시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료작업이 필요하다. 생성자 주입에서는 값을 가진채로 생성되지만 그게아닌 경우 일반적으로 객체를 생성하는 단계에서는 그 객체에서 지정한 필드 값과 변수명으로 객체가 만들어진 후 이후 set메서드가 진행된다, networkClient , networkClient = new NewworkClient(); netWorkClient.setUrl("http://helloSpring.dev") 스프링 빈은 다음과 같은 라이프 사이클을 가진다 / 수정자 주입 , 필드 주입 1.객체생성(ComponentScan / Configuration) 2... 12월 13일 SpringBoot 수동bean 자동bean 수동bean 자동bean 1.편리한 자동등록을 기본으로 사용하자 2.직접 등록하는 기술 지원객체는 수동등록 3.다형성을 이용하는 비즈니스로직은 수동등록을 고려하자 1.어지간하면 수동빈을 사용하자 bean등록은 @Component / @ComponentScan 을 사용하는 자동등록이 있고 @Configuration / @Bean을 사용하는 수동등록이 있다. 수동은 번거롭고 빈수가 많아지면 관리도 힘들다 자동등록으로 COP/DIP를 충족시킬 수 있으니 자동등록을 사용하자 2.수동 등록을 사용하는 경우 빈은 크게 두가지로 구별할 수 있다 1.업무 지원 빈 : 웹을 지원하는 컨트롤러 , 비즈니스 요구사항을 개발할 때 추가 변경 2.기술 지원 빈 : 기술적인 문제나 공통관심사(AOP) 처리시 주로 사용 업무지원은.. 12월 11일 SpringBoot 조회된 2개이상의 Bean이 모두 필요할 경우 조회된 2개이상의 Bean이 모두 필요할 경우 이런경우 Map이나 List을 이용해서 같은타입의 bean을 한번에 받아서 사용할 수 있다. static class DisCountService{ private final map policyMap; private final list policies } 이런 형태로 bean을 담을 collection을 만들어 두고 @AutoWired(생성자) public DosciountService(Map policyMap ,List policies){ this.policymap = policymap; this.polices = polices; } @AutoWired가 각 Map과 Lsit형태로 Bean을 주입받으면 동일한 타입의 Bean들이 모두 Collection에 들어.. 12월 8일 SpringBoot 사용자 어노테이션 만들기 사용자 어노테이션 만들기 스프링에서 사용자 어노테이션을 만들어보자 public @interface MainDisCountPolicy{}의 형태의 인터페이스를 생성한다 이를 어노테이션 생성 이라하는데 @Targer({ElementType.FILE} , ElementType.METHOD , ElementType.Parameter , ElementType.Type , ElementType.Annotation_type}) @Returntion (RetrunTionPloicy.Runtime) @Inderited @Documented 위 어노테이션을 해당인터페이스에 부여하는것으로 어노테이션이 완성된다 외부에서 @MainDisCountPolicy를 만든 어노테이션명으로 호출이 가능하다 Qualifier의 문제점 Qu.. 12월 7일 SpringBoot @AutoWired의 성질 @AutoWired의 성질 @AutoWired는 SpringContaner에서 타입이 맞는 객체를 찾아 필요한곳에 넣어주는 역활을 한다 이떄 A라는 타입에 객체가 Contaner에 하나만 있다고 할때는 문제가 안되지만 같은 타입을 구현한 객체가 복수개 존재한다면 @AutoWired는 NoUniqueBeanDefinitionException 을 반환한다. 즉 일반적으로는 Container에 같은 타입의 클래스가 존재할 수 없고 별도의 조치가 필요하게 된다. 3가지 방법이 있는데 1.@AutoWired 기본기능 @AutoWired는 찾고자 하는 타입의 bean이 복수로 존제하게되면 명시된 메소드의 객체명으로 등록된 Bean을 찾아 가져온다(추가적으로 메소드 명까지 기술하는 방법) 2.@Qualifier 사용.. 이전 1 ··· 26 27 28 29 30 31 32 ··· 34 다음