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

各位小伙伴

今天我们分享的是

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) ,不需要实现一些特殊接口。

鼓励我们面向接口编程。

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


今天就到这里了

再见了

你可能感兴趣的:(Java框架之spring(三)—Spring IOC的注解注入)