Bean的注入方式

Spring Bean的注入大致分为两类:

XML配置 与 注解方式
一、XML配置:set注入、构造函数注入,P标签,静态工厂方法与实例工厂方法;

二、注解方式: @Autowired,@Resource,@Qualifier。

注解需要注意:
@Autowired:是自动装配,默认采用类型ByType,依赖对象必须存在,否则抛出异常,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) 。

@Qualifier("cusInfoService"):根据名称装配,一般与Autowired结合使用。

@Resource(name="cusInfoService"):默认根据名称,可以指定名称或类型,也可以同时指定。

@Resource装配顺序
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

注解方式注意:
@Configuration:标识配置类,相当于spring配置文件

@ComponentScan("com.hello.bean"):扫描包路径。

@Component:用来标识一个bean,用于spring的IOC容器就是通过扫描加注解的方式将对象放入容器管理。

@Component:@Controller,@Service,@Repository,只是为了分类,作用相同!

@Controller("Bean的名称"):定义控制层Bean,如Action

@Service("Bean的名称"):定义业务层Bean

@Repository("Bean的名称"):定义DAO层Bean

posted @   joyfulest  阅读(496)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示