java框架注入_Java框架之spring(三)—Spring IOC的注解注入

各位小伙伴

今天我们分享的是

spring IOC(控制反转)的

基于注解的注入

基于注解的注入 :就是用注解标签的方式来替换掉我们 xml 配置文件里面 bean 的注册和依赖关系的描述(有不清楚的小伙伴可以去看一下我们之前文章)

我们来实践一下

先来创建一个小项目吧!

我们就直接在原来的项目上进行修改了!

363d2335b25e957ebb9678bcd95e4d7a.png

把 jar 包 spring-aop-4.2.1.RELEASE.jar 导入到我们的项目中,包的位置在spring-framework-4.2.1.RELEASE\libs文件夹里面。

a9290c8a99d3112fe070fea5f2f00ede.png

就是他了!

加入 context 约束,虽然我们不进行配置,但要告诉容器我们有哪些文件使用注解的方式,让容器去扫描文件。

775181675848305f66da49e77a255c8b.png

在 appliactionContext.xml配置里面定义扫描需要用到的直接的包路径。

ea115248a90eedc09326d77fe4da3f5c.png

后面就不用再添加别的内容了!

现在就在需要注解的 bean 对象前面加入注解标识符

@Component 所有的类上面都可以这么写,只是不规范!

98b0433438fb5e38017ba8205d277695.png

规范一点的写法是:

@Repository:这个注解主要是声明 dao 的类组件

32b862f97973ac5b15efef0ed720f9a3.png

bbbc8aa77ded8b7a46e9ef183c9f5b2a.png

@Service:这个注解主要是声明 service 服务类

9b1f974a289169d160f19395e8205ba7.png

@Controller:主要是声明控制类 (springmvc/struts2 action/controller)

我们的例子中没有这边的代码,就不截图了

上面是类的声明,下面是我们的依赖关系。

@Resource java 的注解 ,默认是以 byName 方式注入,byName 找不到的话,再用 byType 去匹配

0cfc113f352c9320b7ff3d1b90fb2b91.png

@Autowired spring 的注解,默认是以 byType 注入,-如果有多个实现类,他再用 byName 的方式去匹配

a8c3672d6ec2d01cc295e6e96bc8d139.png

测试结果

2473199f7436da694b19256651bbabb3.png

@Qualifierspring的注解,可以指定实现的方法名称。

1f9d3c81632c4f8999811da61eb68dc0.png

@Autowired @Qualifier 两个一起 用,指定用byName的方式进行匹配

@Scopebean的作用域

eda5f310e33bd3a213634bbb6d9acbf4.png

39765c9d12ab0be55c89d59d0bae19ee.png

注意: 注解不需要设置 setter 方法 ,但是我们还是一般写上,因为当我们在配置文件里面配置了 bean 的时候 ,而且通过配置文件描述了依赖关系,会有限是用配置,如果没有setter方法,会报异常。

Spring IOC 总结

Spring 的IOC(控制反转)是通过依赖注入(dependency injection)来实现的

优点 :

减少了对象的创建和管理 ,使代码层次更加清晰。

Spring 的IOC容器是一个轻量级的容器 ,没有侵入性(不依赖容器的API) ,不需要实现一些特殊接口。

鼓励我们面向接口编程。

减少了代码的耦合,将耦合的部分推到了配置文件中 ,如果他们的关系发生了改变,只需要修改配置文件。

今天就到这里了

再见了

471da2bd240c11e3b4551ddd6cb50309.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值