분류 전체보기 Spring> Annotation> Qualifier for Injection 2021. 4. 13. @Autowired를 통해서 우리가 필요한 클래스를 spring에서 자동으로 찾고 연결해주는 걸 알 수 있었는데 만약에 아래와 같이 @Component 로 지정된 클래스 객체가 여러 개면 어떻게 해야할까? 그래서 Qualifier를 사용하는데 직접 이름을 정해주거나 아니면 클래스 이름인 BeanId를 사용하는 방법이 있다. 하지만 이것도 예외사항이 있다. 첫 번째와 두 번째 글짜가 대문자이면 소문자로 변환하여 인식하지 않는다. 예를 들어서 위 예시인 RESTFortuneService 인 경우 beanId를 RESTFortuneService 그대로 인식한다. 1. Qualifier for filed injection 함수를 사용할 때 배열에서 무작위로 문장을 뽑는다. RandomFortuneService .. Spring> Annotation> Setter, Method, Field Injection 2021. 4. 13. 1. Setter Injection getDailyFortune에서 FortuneService를 사용하니까 있어야 한다. setFortuneService가 Autowired 로 지정되어 있어서 따로 실행시키지 않아도 spring 이 알아서 지정된 Component 중에서 적절한 것을 찾아서 넣는다. 그래서 setter를 사용하여 따로 설정하지 않아도 자동으로 적용된다. 2. Method Injection setter에서 method로 작동 원리는 같다. 3. Field Injection 필드를 autowired로 했다는 점이 차이점이다. 원리는 이상과 같다. 공통 원리는 @Autowired라고 표시되어 있으면 spring이 @Component 중에서 적절한 것을 골라준다. Spring>Annotation> Constructor Injection 2021. 4. 12. 어노테이션이 없는 경우 xml 에다가 빈을 적고 생성자 내용을 넣어주는 걸 적어야했다. 그런 다음 메인앱에서 xml을 불러오고 실행시켜서 작동했다 하지만 어노테이션을 쓰면 굳이 xml 에다가 빈을 적을 필요없이 바로 클래스에다가 적어놓은 어노테이션을 메인앱에서 사용하면 된다. 그것이 직접 설정한 이름이든 아니면 클래스 이름이든... @Autowired 부분을 보자.. 메인앱에서 tenisCoach 를 생성하면 입력값이 필요하다. 이 입력값을 따로 설정하진 않았지만 스프링이 이제 FortuneService Interface를 실행할 컴포넌트를 검색한다. 여기서는 HappyFortuneService가 요구사항에 맞는다. Spring> Annotation> Default Component Name 2021. 4. 12. 프로젝트를 하나 만들어주고 lib 폴더에 spring 라이브러리를 가져온다. 그리고 프로젝트의 properties에서 java build path에다가 가져온 spring 라이브러리를 지정해준다. xml 파일을 src 디렉토리에 넣어준다. 어노테이션으로 이름을 지정하여 사용할 수 있다.. 위 예시에서는 클래스 위에 @Component("thatSillycoach")라고 했다. 이 방법은 xml에 따로 쓰지 않아도 클래스를 사용할 수 있다. 이름을 지정하지 않고 클래스 이름으로 부를 수 있는데 앞에 대문자를 소문자로 써야하는 특징이 있다. Spring> Bean> Scope 와 LifeCycle 2021. 4. 12. 빈으로부터 두 개의 변수에 같은 클래스를 배정하고 theCoach와 alphaCoach 출력을 했을 경우 두 변수가 다르지만 같은 것을 가리키고 있는 걸 알 수있다. scope를 prototype이라고 하면 각각 생기는 걸 볼 수있다. 오브젝트가 따로 생기고 메모리에 배정받은 걸 의미한다. Scope에는 싱글톤이나 프로토타입이 있다. TrackCoach가 생성하고 파괴될 때 실행하는 함수를 만들어 주자. xml 파일에 실행시킬 함수를 작성한다. 메인 함수에서 클래스를 실행하고 종료한다. Spring> bean 에 properties 파일을 이용하는 법 2021. 4. 11. properties 파일에서 정보를 읽어오고 bean 파일에 제출하여 클래스 메소드를 실행시켜보자. 패키지 파일에 properties 파일을 만들어주고 내용은 이렇게 작성한다. applicationContext.xml 파일에 위 내용을 첨부한다. properties 위치를 알려주는 역할을 한다. xml 파일에서 값이 필요한 곳에 $ 표시로 작성한다. 하드코딩을 하지 않고 메인 앱에서 조작을 특별히 하지 않고 잘 작동한다... Spring> bean에서 Setter 설정하는 법 2021. 4. 10. setFortuneService 에서 set을 뺀 이름인 fortuneService이 name 항목에 들어간다. 만약 문자열 setter를 다루고 싶다면?? 여기서도 setTeam이거나 setEmailAddress 인데 앞에 set을 뺀 team, emailAddress를 name항목에 넣는다. 클래스는 ref으로 받는데 문자열은 value를 쓴다는 점이 다르다. 여기서 문제 theCoach 변수는 왜 인터페이스인 Coach가 아니라 CricketCoach 로 설정했냐는 점이다. 객체지향에서 배울 때 분명 추상클래스나 인터페이스로 받으라고 배웠는데 말이다. 그 이유는 Coach 인터페이스가 정의된 메소드는 getDailyWorkout과 getDailyFortune 두 개이고 Coach 인터페이스를 imp.. Spring> bean과 생성자 설정하기 2021. 4. 9. 1.인터페이스와 클래스 생성 인터페이스 생성 몰랐는데 클래스 생성시 인터페이스를 같이 만들 수 있는 편의기능이 있었다.. 인터페이스 메소드를 만들어준다. Coach 인터페이스도 만들어주고 클래스도 구성해준다. 2. 생성자 만들기 BaseballCoach 생성자를 FortuneService로 지정하고 FortuneService의 메소드를 실행하는 메소드를 만든다.. applicationContext.xml 파일에 만들어 놓은 클래스를 적어준다.. 메인에서 사용될 때 여기를 보고 이용한다. 생성자는 어떻게 구성해야하는 눈여겨보자.. 3. spring config 파일에 구성 결과가 잘 나온다... 만약 다른 클래스로 바꾸고 싶다면???? 그러면 클래스를 먼저 만들어 주고 이름만 xml에서 TrackCoach.. 이전 1 ··· 24 25 26 27 28 29 30 다음