SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(三)

⑤. @Autowired:是按照数据类型从spring容器中进行匹配的


说明:


(1). 自动按照类型注入。只要有唯一类型匹配就能注入成功


(2). 如果注入的bean在容器里不唯一时,它会把变量名称作为bean的id在容器里查找,也能查找成功。如果没有找到一致的bean的id,则报错。当我们使用注解注入时,set方法就不是必须的


SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(三)


⑥. @Qualifier:是按照id值从容器中进行匹配的,但是此处 @Qualifier要结合@Autowired使用


    @Autowired
    @Qualifier("fooFormatter")
    private Formatter formatter;


SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(三)


⑦. @Resource


找到@Resource注解以后,判断该注解name的属性是否为""(name没有写)


如果没有写name属性,则会让属性的名称的值和spring中ID的值做匹配,如果匹配成功则赋值,如果匹配不成功,则会按照类型进行匹配,如果匹配不成功,则报错


如果有name属性,则会按照name属性的值和spring的bean中ID进行匹配,匹配成功,则赋值,不成功则报错


③. Spring新注解


  • ①. Spring新注解集合


SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(三)


②. 代码展示


//标志该类是Spring的核心配置类
@Configuration
/*<!--配置组件扫描-->
<context:component-scan base-package="com.xiaozhi"></context:component-scan>*/
@ComponentScan("com.xiaozhi")
/*<!--加载外部的properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>*/
@PropertySource("classpath:jdbc.properties")
public class SpringConfiguration {

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


    //Spring会将当前方法的返回值以指定名称存储到Spring容器当中
    @Bean("druidDataSource")
    public DataSource getDataSource(){
        DruidDataSource druidDataSource= new DruidDataSource();
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }
}
    @Test
    public void test2() throws SQLException {
        ApplicationContext app=new
                AnnotationConfigApplicationContext(SpringConfiguration.class);
        DruidDataSource bean = app.getBean(DruidDataSource.class);
        System.out.println(bean.getConnection());
    }
上一篇:git centos yum 安装 (服务器端 ,客户端)


下一篇:SpringCloud 应用在 Kubernetes 上的最佳实践 — 高可用(容量评估)