728x90 Spring153 스프링 강의 16강 _ 특화된 @Component 어노테이션 (@Controller/@Service/@Repository) 객체에 기본값이 없어도 생성시 초기화 하는 법 사실 NewlecExam이라는 객체는 @Component어노테이션하면 개념상 잘 맞지 않다. @Component는 MVC를 구성하고 있는 자바코드들에 대해서 Component라고 한다. 여기서 더 구체적 의미를 지닌 @Controller @Service @Repository 가 있다. @Component 대신 @Service, @Controller등을 써도 결과는 같다. 의미가 더 명확해진다 다음 강의부터 xml파일을 모두 자바 어노테이션화 할 것이다. https://www.youtube.com/watch?v=pyMzPpK4uXk&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=16 2021. 12. 28. 스프링 강의 15강 - 어노테이션을 이용한 객체생성 지난시간에 배움 이렇게 바꿀건데 이렇게만 하면 오류가 발생함. @Component setting.xml에 이렇게 추가해줘야 한다. 추가해줬다면 는 지워도 됨 1. 이름으로 찾을때는 @Component("console") 로 작성해야 오류없이 실행됨 2. 형식으로 찾을때는 @Component만 작성해줘도 된다. https://www.youtube.com/watch?v=DNrkw3pAsAM&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=15 2021. 12. 28. 스프링 강의 14강 _ @Autowired의 위치와 required 옵션 인젝션 하는 방법 크게 2가지 1. setter 인젝션 2. constructor 인젝션 (생성자 오버로드) 특이한 다른 방법은 필드에 @Autowired를 붙이는 방법인데 개념적으로는 기본생성자에서 객체를 바인딩하는 작업이다. 하지만 직접 사용해보면 문제가 되는 점을 알아보자. 기본생성자 호출하면서 인젝션 된다. seeter 함수가 호출 되면서 바인딩 되는 방식 기본 생성자를 인젝션하는 방식을 쓸때는 오버로드 생성자가 있다면 기본 생성자도 명시를 해줘야한다(위 이미지는 주석 달아놨으니 오류 발생한다) 기본 생성자를 명시하지 않았다면 오버로드 생성자도 없애야 한다. 오버로드 생성자에 인젝션할 경우 (Exam exam)을 복수로 생성할 수 있으므로 오류가 발생 굳이 하고 싶다면 위와 같이 하면 된다. se.. 2021. 12. 27. 스프링 강의 13강 - @Autowired의 동작방식 이해와 @Qualifier 사용하기 bean은 객체 생성 property에서는 인젝션이 발생함. 여기까지가 xml방식으로 인젝션 어노테이션으로 인젝션되긴 하는데 어디서 인젝션되는지 연결고리를 알아보자. 연결고리는 좌측 setExam 메소드의 (Exam ~)와 우측 bean의 class="spring.di.entity.NewlecExam" Exam을 참조할 수 있는 객체를 자동으로 찾아서 바인딩을 해줌 이렇게 같게 두 줄 작성하면 에러가 뜸 id="exam"추가해 주면 구분가능해져서 정상 작동 정리 기본적으로 내 class="spring.di.entity.NewlecExam"를 먼저 찾고 동일한게 있다면 그 다음으로 id="exam" 를 찾는다. 또다른 방식으로는 @Qualifier("exam1") 방법도 있다. https://www.you.. 2021. 12. 27. 스프링 강의 12강 _ 어노테이션을 이용할 때의 장점과 @Autowired를 이용한 DI 해보기 자바 이용해서 어플리케이션 만들때 초기화 2가지 방법 1. xml이용해서 외부파일에 설정방법 두기 2. 어노테이션이라고 해서 코드파일에 설정 심기 이제부터 2번째 방법 배움 B2결합 중 B2결합을 -> 3결합으로 바꾸려 함 이런 방식으로 xml에서 했던 작업을 어노테이션 방식으로 바꿔보자 setting.xml에 써놓고 해당 파일 setExam()메서드에 @Autowired를 달아 놓으면 실행시 알아서 찾는다 @Autowired지시 하나가 이 표현 두 줄을 대신 해준다 대신 xml파일에 객체 생성시 @Autowired를 찾으라는 것을 지시서에 표기해놔야 한다. 찾으라는 지시 방법은 Namespaces에서 context체크 하면 xmlns:context="http://www.springframework.or.. 2021. 12. 27. 스프링 강의 11강 _ 콜렉션 생성과 목록 DI 콜렉션하면 어레이 리스트가 대표적이다. 이걸 xml로 해보자. 생성자에 목록을 추가하는 방법이다. 그리고 는 객체를 직접 생성하는 방법이고. 는 보다 이전에 만든 객체꺼를 참조하여 객체를 생성하는 방식이다. 다른 방법은 utill 체크하면 setting.xml에 xmlns:util="http://www.springframework.org/schema/util" 추가된다. 그러면 ======================================================== ============================================================ 이라고 작성해줄 수 있는데 ====================================================.. 2021. 12. 27. 스프링 10강 - 생성자 DI 일단 기본 생성자 만들고, 생성자 오버로드도 해준다. 이 방식은 생성자 오버로드 방식을 활용한 것이다. Exam exam = context.getBean(Exam.class); System.out.println(exam.toString()); --------------------------------------- 추가 index 속성 값 따라 순서 바껴서 나옴 index말고 name속성으로도 동일하게 출력 가능하다. 억지를 좀 부리면 type을 통해서도 동일하게 출력가능하다 이러한 방법으로도 가능하다. 실습해보자 이렇게 작성하면 에러가 뜬다. 하단에 Namespaces 클릭 (난 없어서 찾아봤다) https://velog.io/@soyeon/Spring-Framework-%EC%8A%A4%ED%94%84.. 2021. 12. 27. 이전 1 ··· 18 19 20 21 22 다음 728x90