依赖注入(DI)与 面向切面编程(AOP)

依赖注入(Dependency injection)能够让相互协作的软件组件保持松散耦合,而面向切面(aspect-oriented programming,AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。

依赖注入(Dependency injection)

采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定。(引自百度百科)

Spring通过装配bean来实现依赖注入,如何装配bean?

1,声明Bean

2,构造器注入和Setter方法注入

3,装配Bean(三种主要的装配机制)

4,控制Bean的创建和销毁

(1)在XML中进行显式配置
(2)在Java中进行显式配置
(3)隐式的bean发现机制和自动装配(开发常用,下面只介绍此方法)

–步骤1,XML配置

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:c="http://www.springframework.org/schema/c"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  <!-- soundsystem 为扫描包的名称-->
  <context:component-scan base-package="soundsystem" />

</beans>

–步骤1.2,Java配置

@Configuration
@ComponentScan(basePackages={"soundsystem"})
public class CDPlayerConfig { 
}

–步骤2,用注解(@Component @Autowired)来声明bean
在这里插入图片描述

扫描二维码关注公众号,回复: 5636522 查看本文章

面向切面(aspect-oriented programming,AOP)

利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

下面介绍基于XML配置开发AspectJ的使用

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chegy218/article/details/88249406