@Autowired를 이용하면 컨테이너 상에서 객체 Type이 일치하는 의존객체를 찾아 주입해준다. 그런데 컨테이너 상에 같은 타입의 Bean이 복수개 존재하게 되면, 스프링이 주입대상 객체를 판단하지 못해 Exception이 발생한다. 같은 타입의 Bean이 여러개 존재하는 상황에서, @Autowired를 이용하기 위해선 @Qualifier를 통해 Bean을 구분해주면 된다. @Qualifier 사용 전 ApplicationContext.xml DependencyBean.java public class DependencyBean { @Autowired private InjectionBean injectionBean; } 콘솔에러 일부 org.springframework.beans.factory.Bean..
스프링설정파일에서 Bean 마다 의존객체를 주입해주게되면 프로그래머가 번거로울 수 있다. 의존객체 주입 방법을 조금 더 편하게 할 수 있는 @Autowired와 @Resource를 통해 의존객체 자동주입을 알아본다. @Autowired와 @Resource의 차이점을 간단히 살펴보면 다음과 같다. @Autowired @Resource DI 방법 객체 타입 객체 이름 적용가능 범위 - 변수 - 생성자 - Setter - 메서드 - 변수 - Setter 자동주입 사용 전 applicationContext.xml 스프링설정파일 상에서 dependencyBean 클래스에 injectionBean 객체의 생성자와 프로퍼티를 주입해준다. DependencyBean.java private InjectionBean in..
IoC 컨테이너에서 생성되는 Bean은 기본적으로 싱글톤 방식이다. 즉 JAVA 코드에서 getBean을 통해 객체를 여러번 가져오더라도 실제로 생성되는 객체는 하나이다. 이러한 싱글톤 패턴은 대규모 트래픽 처리시, 객체의 재사용성을 높이고 객체를 여러번 생성하면서 발생하는 메모리 낭비를 방지할 수 있다. 싱글톤 패턴의 단점 직접 싱글톤 패턴을 구현하게되면 여러가지 단점을 가지게 되는데 대표적으로 가지는 단점은 다음과 같다. private 접근제어자를 통해 생성되기 때문에 상속이 불가능하다. 단위 테스트의 어려움 서버환경에서 동시에 요청이 들어오게되면 하나만 생성됨을 보장하지 못한다. 전역 상태를 가지기 때문에 객체지향적 관점에 바람직하지 못하다 싱글톤 레지스트리 스프링 컨테이너에서 생성하는 Bean 또..
스프링은 스프링설정파일(*.xml)에서 Bean을 생성해주는데 스프링설정파일이 꼭 한 개일 필요는 없다. 스프링 설정파일이 하나일 경우, 여러 개일 경우를 상황별로 나누어 Java 클래스에서 활용하는 방법을 알아보자. 1. 한 개의 스프링설정파일이 있을 때 JAVA 클래스에서 호출 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml"); 스프링설정파일이 한 개일 때는 위와 같이 Bean을 가져올 수 있다. 2. 여러개의 스프링설정파일 생성 후 호출하는 경우 하나의 xml 파일에 모든 Bean을 명시하다 보면 코드가 길어질 수 있는데 이때, 기능에 따라 구분된 여러 개의 xml..
Thymeleaf Spring에서 사용되는 템플릿 엔진으로, 사용을 위해선 Spring Boot Starter에 요소를 추가해줘야한다. Spring에선 최근 Thymeleaf를 더 선호하며 확장자가 html이기에 다른 java 프레임워크에서 가져다 쓰기 용이하다. 기본 표현식 Controller에서 Model을 통해 넘겨준 데이터를 활용하는 방법을 알아보자 controller/ThymeleafController.java @Controller public class ThymeleafController { @GetMapping("/user") public String user(Model model) { Map user = null; user = new HashMap(); user.put("userId", "..
- Total
- Today
- Yesterday
- svn
- 프로그래머스
- 인턴
- 오라클
- 스프링
- Thymeleaf
- Java
- 부트스트랩
- CSS
- Open API
- 백준
- 넥사크로
- JSP
- SQL
- 스프링부트
- 개발용어
- JVM
- 데이터베이스
- C
- HeidiSQL
- 오류
- CS
- 네트워크
- 환경설정
- 국비교육
- 이클립스
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |