美文网首页
全栈开发008 Spring开发 依赖注入

全栈开发008 Spring开发 依赖注入

作者: 攻城狮托马斯 | 来源:发表于2020-04-17 22:33 被阅读0次

依赖注入:

耦合具有两面性,一方面,紧耦合的代码难以测试,难以复用,而适当的耦合又是必须的,没有耦合的代码什么也做不了。

因此,依赖注入通过注入已经生成的实例,如此一来,该实例即属于某个对象,也可以被第三方所控制,更改,以及检测,因为第三方拥有这个实例的控制权。比如说,一个人用Iphone, 之前他是自己去买一个iphone,所以一旦Iphone版本升级,他使用手机的操作需要改变。而现在,上帝给他一个全新的手机,他所使用的操作就那么些,真正的实现在于iphone,并且,上帝能够知道,他使用了哪些功能,有没有成功。

Spring中用的则是IoC container.

IoC container

通过configuration中的Metadata, Spring Container会生成相应的POJO, 然后一个完整的系统就产生了。

其中有三种Configuration, 一种是在xml中添加,一种是在Java代码中标注,然后是Annotation. 

xml configuration

如图上,如果一个paymentAction中需要logger的话,那么要按如上新建一个bean,设置id, class了之后, 再在payment里面建一个constructor

Annotation

在代码中,可以加入@Component和@Autowire来实现configuration, 这样的话就会被自动注入了.
其中 

@Component是指被Spring管理的组件

@Controller y哦你过来标记presentation层(web controller)

@Repository用来标记persistance层(DAO层)

@Service层则用来标记Service层

@Configuration: 指的是包含一个或多个Bean的methods,然后由Spring container来生产bean。通常Configuration要满足以下要求:

配置类必须以类的形式提供(不能是工厂方法返回的实例),允许通过生成子类在运行时增强(cglib 动态代理)。

配置类不能是 final 类(没法动态代理)。

配置注解通常为了通过 @Bean 注解生成 Spring 容器管理的类,

配置类必须是非本地的(即不能在方法中声明,不能是 private),non-static

JavaConfiguration

标记需要生成的Bean,因为一眼就能够看出对象和被注入物体的关系,

相关文章

网友评论

      本文标题:全栈开发008 Spring开发 依赖注入

      本文链接:https://www.haomeiwen.com/subject/temuvhtx.html