Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节
前言
Spring框架对Bean进行装配提供了很灵活的方式,下面归纳一下主要的方式:
在XML中进行显示配置
在Java中进行显示配置
隐式的bean发现机制和自动装配
而自动装配实现就需要注解扫描,这时发现了两种开启注解扫描的方式,即和
下面归纳一下这两种方式的异同点:
:注解扫描是针对已经在Spring容器里注册过的Bean
:不仅具备的所有功能,还可以在指定的package下面扫描对应的bean
Demo:
Demo:XML注册Bean方式
下面给出两个类,类A和类B
package com.test;
pubic class B{
public B(){
System.out.println("B类");
}
}
package com.test;
public class A {
private B bClass;
public void setBClass(B bClass){
this.bClass = bClass;
System.out.println("通过set的方式注入B类");
}
public A(){
System.out.println("A类");
}
}
如何我们这时可以通过传统的xml配置在Application.xml里进行bean注册
启动加载Application.xml
输出:
类B
类A
通过set的方式注入B类
Demo:annotation配置注解开启方式
package com.test;
pubic class B{
public B(){
System.out.println("B类");
}
}
package com.test;
public class A {
private B bClass;
@Autowired
public void setBClass(B bClass){
this.bClass = bClass;
System.out.println("通过set的方式注入B类");
}
public A(){
System.out.println("A类");
}
}
然后我们需要在Application.xml里注册Bean,假如我们先这样配置,仅仅注册Bean,不开启扫描
或者仅仅开启扫描,不注册Bean
这时加载Application.xml配置
输出:
类B
类A
我们会发现下面的@Autowired的方法是不能被加载的
@Autowired
public void setBClass(B bClass){
this.bClass = bClass;
System.out.println("通过set的方式注入B类");
}
解决方法:
修改Application.xml配置文件
重新加载配置文件,输出正常了
输出:
类B
类A
通过set的方式注入B类
归纳::注解扫描是针对已经在Spring容器里注册过的Bean
Demo:component配置注解开启方式
package com.test;
pubic class B{
public B(){
System.out.println("B类");
}
}
package com.test;
@Component
public class A {
private B bClass;
@Autowired
public void setBClass(B bClass){
this.bClass = bClass;
System.out.println("通过set的方式注入B类");
}
public A(){
System.out.println("A类");
}
}
然后我们配置一下application.xml,开启annotaion-config扫描
加载配置文件:
输出:
类B
类A
原因::注解扫描是针对已经在Spring容器里注册过的Bean,Bean并没有注册过,所以即使开启了@Autowired、@Component注解 和配置开启了annotaion-config扫描还是加载不到
修改配置文件:
重新加载配置文件:
输出:
类B
类A
通过set的方式注入B类
归纳:
:注解扫描是针对已经在Spring容器里注册过的Bean
:不仅具备的所有功能,还可以在指定的package下面扫描对应的bean
和 同时存在的时候,前者会被忽略。
即使注册Bean,同时开启扫描,@autowire,@resource等注入注解只会被注入一次,也即只加载一次
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节相关推荐
- cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
注释介绍 @Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 参数 解释 example value 缓 ...
- 多图详解Spring框架的设计理念与设计模式
Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道.本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的 ...
- 详解Spring框架的异步请求
文章目录 详解Spring框架的异步请求 1.导入响应的jar包(gson) 2.前端请求 3.后端逻辑处理并返回结果 详解Spring框架的异步请求 在开发过程中有异步请求和同步请求之分. 同步请求 ...
- java 配置文件的路径_详解java配置文件的路径问题
详解java配置文件的路径问题 详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设 ...
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
- java切面不需要接口了吗_详解Spring AOP 实现“切面式”valid校验
why: 为什么要用aop实现校验? answer: spring mvc 默认自带的校验机制 @Valid + BindingResult, 但这种默认实现都得在Controller方法的中去接收B ...
- java按钮权限控制_详解Spring Security 中的四种权限控制方式
Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se ...
- java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...
- java sort 第二个参数_详解java Collections.sort的两种用法
Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static > void sort(List list) { l ...
最新文章
- pymssql 安装后只有 .disk-info_变频空调安装注意事项
- 米兰大学发布论文与猫咪叫声数据集,分类喵喵叫
- 形态学图像处理或能帮助实例分割
- 如何给Pycharm加上头行 # *_*coding:utf-8 *_*?
- 辰星计划2021 | 旷视春季实习生招募—空中宣讲会第二弹来了!
- .NET6之MiniAPI(九):基于角色的身份验证和授权
- flask jinja2 如何遍历新闻列表
- 用markdown + html写一封简历
- 30. 连续子数组最大和
- 回来不是为了留下,而是为了重新出发 -- 生死阅读影评
- 程序执行系统VC++程序出现“试图执行系统不支持的操作”
- crmjs区分窗口是否是高速编辑(2)
- 电子技术基础(三)__具有无关项逻辑函数的化简
- google退出中国市场是战略性错误
- LED跑马灯-位操作
- 笔记本辐射与日常电器辐射对比
- 关于程序员的那些段子,你能看懂几个?
- 【计算机网络】DNS解析详解
- java学生成绩管理系统类图,学生成绩管理系统的分析及设计-应用UML建模
- Tableau入门(Tableau10.5.0)
热门文章
- PRT(Precomputed Radiance Transfer)球谐光照(Spherical Harmonic Lighting)
- 如何安装蓝湖插件支持Photoshop CC 2017
- 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00
- 设置WebStorm用Ctrl+鼠标滚轮上、下调整编辑器代码字体大小
- Linux多线程与同步
- fiddler 抓取winform wcf包
- github后端开发面试题大集合(一)
- (转)@ContextConfiguration注解说明
- Apache优化:修改最大并发连接数
- 多条件组合查询+分页