您的位置:首页 > 编程语言 > Java开发

Spring核心概念

2017-08-26 19:01 211 查看

 Spring IoC

  Spring IoC就是控制反转,也被称为依赖注入(Dependency Injection, DI),是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。

  依赖是什么:

      依赖就是在代码中通过局部变量、方法参数、返回值等建立的对于其他对象的调用关系。

public class UserController {
//声明日志
static Logger log = Logger.getLogger(UserController.class);
public static void main(String[] args) {
//在方法执行前输出日志
log.info("显示用户信息");
//使用try-catch来进行对异常的处理
try {
ApplicationContext con = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = con.getBean("userService", UserServiceImpl.class);
userService.showInfo();
} catch (Exception e) {
log.error("显示用户信息失败", e);
}
}
}
繁琐的代码

 

      上面的代码是一段典型的日志输出+异常处理的代码,从上面的代码可以看出,代码中添加了大量的日志和异常处理的代码,而我们实际的业务代码只有3行。

      日志、异常处理、事务控制是一个健壮的业务系统所必须的,但是为了保证系统健壮可用,就需要在众多的业务方法中“反复”编写类似的代码,使得原本就很复杂的业务处理代码变得更加复杂。

      在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,这些穿插在既定业务中的操作就是所谓的“横切逻辑”,也被称为“切面”。

      面向切面编程极大的简化了上面代码中“重复”但又不得不写的代码,可以使我们在不改变原程序的基础上为代码段增加新的功能,对代码段进行增强处理。它的设计思想来源于代理设计模式。

  Spring AOP基本概念:

      1.切面(Aspect):一个模块化的横切逻辑(或横切关注点),可能会横切多个对象。

      2.连接点(Join Point):程序执行中的某个具体的执行点。

      3.增强处理(Advice):切面在某个特定连接点上执行的代码逻辑。

      4.切入点(Pointcut):对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式关联,并在与这个切入点匹配的某个连接点上运行。

      5.目标对象(Target object):被一个或多个切面增强的对象。

      6.AOP代理(AOP proxy):由AOP框架所创建的对象,实现执行增强处理方法等功能。

      7.织入(Weaving):将增强处理连接到应用程序中的类型或对象上的过程。

      8.增强处理类型:有前置增强、后置增强、环绕增强、异常抛出增强、最终增强等等。这些增强处理实现方式都差不多。

除了上文说的技术之外,spring的帮助文档也给我们提供了相当全面且详细的说明。

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: