일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springframeworkruntime
- .idea
- MVC
- Git
- assuming That
- assume That
- DispatcherServlet
- 원격저장소
- CS50
- springboot
- 스프링프레임워크
- 파일삭제
- assume
- Swagger
- 부스트코스
- .out
- swaggerUrl
- GitHub
- Junit5
- 팀과제
- c언어
- assume True
- gitbash
- springmvc
- 컴퓨터과학
- Spring
- MVC모듈
- securityconfig
- container
- springsecurity
- Today
- Total
도담이 먹여 살려야하는 집사
JAVAConfig[ApplicationConfig/DBConfig] 본문
Java Config 이용 설정을 위한 Annotation
@Configuration
- 스프링 설정 클래스를 선언하는 어노테이션
- java config로 설정을 할 클래스 위에는 @Configuration 이 붙어 있어야 함.
@Bean
- bean을 정의하는 어노테이션
@ComponentScan
- @Controller, @Service, @Repository, @Component 어노테이션이 붙은 클래스를 찾아 컨테이너에 등록
@Component
- 컴포넌트 스캔의 대상이 되는 애노테이션 중 하나로써 주로 유틸, 기타 지원 클래스에 붙이는 어노테이션
@Autowired
- 주입 대상이 되는 bean을 컨테이너에 찾아 주입하는 어노테이션
ApplicationConfig
스프링 설정 클래스
package kr.or.connect.guestbook.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @ComponentScan(basePackages = {"kr.or.connect.guestbook.dao","kr.or.connect.guestbook.service"}) @Import({DBConfig.class}) public class ApplicationConfig { }
package kr.or.connect.guestbook.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan(basePackages = {"kr.or.connect.guestbook.dao","kr.or.connect.guestbook.service"})
@Import({DBConfig.class})
public class ApplicationConfig { }
ApplicationContext
-
AnnotationConfigApplicationContext
JavaConfig클래스를 읽어드려 IoC와 DI를 적용
설정 파일 중 @Bean이 붙어 있는 메소드들을 자동으로 실행 >> 그 결과로 리턴하는 객체들을 기본적으로 싱글톤으로 관리
DBConfig
Maven에 Spring JDBC 의존성을 먼저 추가해준다
@Configuration
@EnableTransactionManagement
@PropertySource(value = {"classpath:application.properties"})
public class DBConfig {
}
@Configuration 은 위에 설명되어있음.
@EnableTransactionManagement
- 트랜잭션과 관련된 설정들을 자동으로 처리해준다.
- Platform TransactionManager 구현체를 모두 찾아서 그중 하나를 매핑해서 사용하는 것이다.
- 특정 트랜잭션 매니저를 사용하고자 한다면 TransactionManagermemtConfigure을 구현하고 원하는 트랜잭션 매니저를 리턴하면 된다.
@PropertySource(value = {"classpath:application.properties"})
- 스피링의 application.properties라는 속성 파일을 사용
- 이 경우, 소스 코드에 DB접속정보를 하드 코딩할 필요가 없어짐
- main/resources/application.properties에 작성하면 됨
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/[DATABASENAME]?useUnicode=true&characterEncoding=utf8
spring.datasource.username=[MysqlUserName]
spring.datasource.password=[MysqlPWD]
위의 속성 파일을 사용할 경우, java config인 annotation으로 가져올 수 있다.
@PropertySource(value = {"classpath:application.properties"})
public class DBConfig implements TransactionManagementConfigurer {
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String userName;
@Value("${spring.datasource.password}")
private String password;
@Value로 접근해서 가져온다
또, 스프링 환경 변수를 설정하면 시스템 프로퍼티로 사용이 가능하다.
[Spring] 스프링 Properties 관리하기
* 스프링 Properties 정의하기 스프링 resource폴더 안에 datasource.properties를 정의해주고 그 안에 값들을 정의해 준다. 이 값들은 java config인 annotation으로 가져올 수 있다. 1 2 3 4 5 6 7 8 9 10 11 1..
pjh3749.tistory.com

EditConfigurations >> Application 템플릿에서 Environment variavles에서 변수를 설정해준다.
여기서 변수들은 application.properties에서 설정해준 변수들을 넣으면 된다.
@Autowired
Environment environment;
@Autowired를 선언해 준 후,
dataSource.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name"));
dataSource.setUrl(environment.getProperty("spring.datasource.url"));
dataSource.setUsername(environment.getProperty("spring.datasource.username"));
dataSource.setPassword(environment.getProperty("spring.datasource.password"));
environment.getProperty 로 id, url, pwd를 불러올 수 있다.
DBConfig에 implements TransactionManagementConfigurer는 원하는 트랜잭션 매니저를 리턴하기 위함이다.
또 밑에 코드는 드라이버 로드 및 connection에 사용되는 url, name, pwd이다 >> JDBC
@Bean
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(userName);
dataSource.setPassword(password);
return dataSource;
}
DataSourcee빈을 등록해준다.
'Spring' 카테고리의 다른 글
[Spring Security] Security Config - Swagger Url (0) | 2020.12.28 |
---|---|
JavaConfig2[SwaggerConfig/WebMvcContextConfiguration] (0) | 2020.12.21 |
[Spring] Container & Ioc & DI (0) | 2020.10.26 |
Spring Framework? (0) | 2020.10.26 |