@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..
이클립스 환경설정 에 필요한 MariaDB와 연동하기위 한 과정이다. 먼저 HeidiSQL과 MariaDB를 다운로드 받는다. MariaDB 다운로드 HeidiSQL 다운로드 HeidiSQL과 MariaDB 설치과정은 간단하다. 다만, MariaDB설치 중 root 계정의 패스워드를 꼭 기억하고 패스워드 박스 밑에 있는 Use UTF8 as default server's character set 체크박스를 선택해줘야한다. root 계정으로 MariaDB 접속 HeidiSQL을 실행하면 설치과정에서 입력한 root 계정과 패스워드를 통해 접속한다. (최초 실행 시 좌측 세션 리스트는 화면과 다를 것이다. 상관없다) 신규 데이터베이스 생성 테스트를 위한 데이터베이스를 생성해준다. bootex가 미리 생성되어..
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", "..
STS (이클립스)와 MariaDB를 이용해 스프링 부트 프로젝트를 생성하는 과정입니다. 사전 준비 - Eclipse(STS) - HeidiSQL - 설치과정을 보려면 클릭 - Lombok 1. 환경설정 1.1. STS와 Lombok 연동하기 lombok.jar 파일을 실행시켜 Lombok에 STS.exe파일을 포함시킨다. 만약 jar파일이 실행되지 않는다면 window의 cmd 창으로 실행 가능하다. 다음과 같이 입력하자. cd명령어로 lombok이 위치한 곳으로 이동 후 실행한다. jar 파일 실행을 위해선 java가 존재해야 하므로 미리 체크한다. >java -version >cd C:\springBoot\sts >java -jar lombok.jar 2. 프로젝트 생성 [File] - [New] ..
구동환경 ㅇ IDE : STS4 (이클립스) ㅇ API : 한국관광공사 국문관광정보 ㅇ DB : ORACLE 1. application.properties # datasource spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver spring.datasource.username=사용자 spring.datasource.password=비밀번호 # jpa spring.jpa.hibernate.ddl-auto=update spring.jpa.database-platform=org.hibernate.dialect.OracleDialect spr..
- Total
- Today
- Yesterday
- 백준
- 인턴
- C++
- 국비교육
- HeidiSQL
- CS
- JSP
- 넥사크로
- Open API
- 부트스트랩
- 오류
- 오라클
- 프로그래머스
- Thymeleaf
- 데이터베이스
- 스프링
- C
- JVM
- 환경설정
- 스프링부트
- CSS
- 네트워크
- svn
- Java
- 이클립스
- SQL
- 개발용어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |