Java联盟

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

2017-12-08  本文已影响0人  Java联盟

各位小伙伴

今天我们分享的是

spring IOC(控制反转)的

基于注解的注入


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

我们来实践一下

先来创建一个小项目吧!

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


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


就是他了!

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


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


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

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


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


规范一点的写法是:

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


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



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

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


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

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


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


测试结果


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


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


@Scope bean的作用域


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

Spring IOC 总结 

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

优点 :

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

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

鼓励我们面向接口编程。

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


今天就到这里了

再见了

上一篇 下一篇

猜你喜欢

热点阅读