기록/BACKEND

[Spring] DI 주입하기 - java

5월._. 2022. 4. 16.
728x90

객체 필요한 곳에서 부르기

1.  context 설정(객체 정보를 알 수 있는 class)

    - .xml 파일 대신 설정이 담긴 java class를 넘긴다.

2.  사용할 객체 가져오기(xml과 동일)

    - context에서 Bean을 가져온다.

    - 이름만 설정 : 해당 이름의 객체를 가져온다. 이름이 없다면 해당하는 class를 알아서 가져온다.

    - 클래스만 설정 : 해당 class타입으로 자동 형 변환해서 가져온다. 클래스 설정하지 않으면 Object 타입으로 반환한다.

ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
GuestBookService guestBookService = context.getBean("gbService", GuestBookServiceImpl.class);

 

Config.java

1.  @Configuration을 추가한다.

2.  xml에서 component-scan한 것처럼 사용하려면 @ComponentScan(basePackage="")도 붙인다. 여러 곳을 보려면 basePackages={"","", ...}를 사용한다.

3.  각 Bean을 설정할 때는 그 앞에 @Bean을 붙인다.

    - property를 설정할 때 xml처럼 &를 붙이지 않아도 된다. java파일이기 때문이다.

@Configuration
@ComponentScan(basePackages= {"com._____.model"})
public class ApplicationConfig {
	@Bean
	public DataSource dataSource() {
		SimpleDriverDataSource sdds = new SimpleDriverDataSource();
		sdds.setDriverClass(com.mysql.cj.jdbc.Driver.class);
		sdds.setUrl("jdbc:mysql://127.0.0.1:3306/스키마이름?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8");
		sdds.setUsername("이름");
		sdds.setPassword("비밀번호");
		return sdds;
	}
}

 

Component & Property

[이 방식]과 동일하다.

'기록 > BACKEND' 카테고리의 다른 글

[Spring] JNDI 설정하기  (0) 2022.04.19
[WEB] IoC  (0) 2022.04.19
[Spring] DI 주입하기 - xml  (0) 2022.04.15
[WEB] 파라미터와 어트리뷰트  (0) 2022.04.04
[WEB] 요청과 응답의 Scope  (0) 2022.04.04

댓글