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

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

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


说明:


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


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


微信图片_20220108212845.png


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


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


image.png


⑦. @Resource


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


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


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


③. Spring新注解


  • ①. Spring新注解集合


微信图片_20220108213010.png


②. 代码展示


//标志该类是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());
    }
相关文章
|
6月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
728 4
|
6月前
|
机器学习/深度学习 编解码 计算机视觉
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
156 2
|
6月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
3767 123
|
6月前
|
编解码 算法 自动驾驶
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
555 125
|
7月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
227 0
|
8月前
|
安全 API 数据安全/隐私保护
低代码革命:API无代码集成如何让企业“3天上线一个生态”?
在数字化转型浪潮中,API成为释放数据价值、提升企业效率的核心。本文详解API架构设计、安全实践与跨平台集成,为CTO提供效率提升指南,涵盖微服务、安全认证、协议选择、低代码集成及未来趋势,助力企业构建敏捷、安全、高效的数字生态。
|
8月前
|
数据采集 运维 DataWorks
DataWorks 千万级任务调度与全链路集成开发治理赋能智能驾驶技术突破
智能驾驶数据预处理面临数据孤岛、任务爆炸与开发运维一体化三大挑战。DataWorks提供一站式的解决方案,支持千万级任务调度、多源数据集成及全链路数据开发,助力智能驾驶模型数据处理与模型训练高效落地。
|
11月前
|
监控 Java API
1K star!这个开源项目让短信集成简单到离谱,开发效率直接翻倍!
SMS4J 是一款由国内技术团队打造的短信聚合框架,专为解决多短信服务商接入难题而生。它就像短信界的"瑞士军刀",目前已整合21家主流短信服务商,从阿里云、腾讯云到中国移动云MAS,开发者只需通过简单配置即可实现多平台无缝切换。
743 4
|
6月前
|
机器学习/深度学习 数据采集 传感器
基于多尺度集成极限学习机回归(Matlab代码实现)
基于多尺度集成极限学习机回归(Matlab代码实现)
174 1
|
6月前
|
机器学习/深度学习 运维 算法
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
177 1