Spring (2) SpringIOC 관련 주해

16680 단어 SSM
1. 생 성 대상 에 대한 설명
1. @Component   	  :    。
2. @Controller   	 @Component ,=3. @Service          @Component4. @Repository  	 @Component

2. 주입 에 의존 하 는 주해
@ Autowired 는 용기 에서 대상 을 찾 아 속성 에 값 을 부여 합 니 다.유형, 이름 에 따라 용기 에서 찾 아 보 세 요.
@Autowired       	(    )
1.           (String),             ;
2.            ,          bean id,        。
3.            ,           ,  :NoUniqueBeanDefinitionException


@Autowired	(    )
1.   ,      ,         ;
2.              ,               。

@ Qualifier 는 보통 Autowired 와 결합 하여 사용 합 니 다. 이름 에 따라 용기 에 대상 을 찾 아 주입 할 수 있 습 니 다.
@Qualifier("str1")
         id(str1),

@ Value 는 간단 한 형식 속성 에 직접 값 을 부여 / 설정 파일 값 가 져 오기 @ Value ("${key}")
* @Value    		(  :  )
* 1.             
* 2.        (     )

@ Resource 는 용기 에서 대상 을 찾 아 속성 에 값 을 부여 합 니 다.이름, 유형 에 따라 용기 에서 찾기
* @Resource		(  :  )
* 1.           
* 2.   
*    name           。
*              name,        。

3. 대상 범위 와 생명주기 관련 주해

 * @Scope	(  :  )
 *       、  : singleton/prototype
 * @Lazy	(  : )
 * 1.* 2.* 3.                  
 * @PostConstruct	(  :  )
 * 1.               
 * 2.       
 * @PreDestroy	(  :  )
 * 1.      close()      
 * 2.    


4. 프로필 대신 직접
@Configuration
	@Configuration
 * 1.* 2.      :applicationContext.xml
 * 3.

@ComponentScan(basePackages = “com.it”)
@ComponentScan
 * 1.       
 * 2.<context:component-scan base-package="com.it"/>
 * 3. basePackages       

@Import(JdbcConfig.class)
@Import
 *

@PropertySource(“jdbc.properties”)
	@PropertySource
 * 1.            
 * 2.<context:property-placeholder location=""/>

@Bean(name = “dataSource”)
* 1.      ,  ioc  
* 2. @Bean
*          ,             ioc  
*           ioc        :@Bean(name = "dataSource")



* @Bean        
*   1.           ,             ;
*   2.        ,        ioc           。
*   3. @Qualifier       ,             。

사례 파악 @ Bean 주석: JdbcConfig. java
package config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.sql.DataSource;

/**
 * @PropertySource
 * 1.            
 * 2.    :
 */
@PropertySource("jdbc.properties")
public class JdbcConfig {
    /**
     *       
     */
    @Value("${jdbc.driver}")
    private String driver;

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

    /**
     * 1.      ,  ioc  
     * 2. @Bean
     *          ,             ioc  
     *           ioc        :@Bean(name = "dataSource")
     */
    @Bean(name = "dataSource1")
    public DataSource createDataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(this.driver);
        ds.setUrl(this.url);
        ds.setUsername(this.username);
        ds.setPassword(this.password);
        return ds;
    }
    @Bean(name = "dataSource2")
    public DataSource createDataSource2(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(this.driver);
        ds.setUrl(this.url);
        ds.setUsername(this.username);
        ds.setPassword(this.password);
        return ds;
    }

    /**
     *   JdbcTemplate,  ioc  
     * @Bean        
     *   1.           ,             ;
     *   2.        ,        ioc           。
     *   3. @Qualifier       ,             。
     */
    @Bean
    public JdbcTemplate createJdbcTemplate(@Qualifier("dataSource1") DataSource dataSource){
        return new JdbcTemplate(dataSource);
    }
}










좋은 웹페이지 즐겨찾기