spring 的概述
spring框架是一个轻量级的企业级开发的一站式解决方案,所谓解决方案就是可以基于spring解决javaEE开发中的所有问题。Spring框架主要提供了IoC容器,AOP,数据库访问,WEB开发,消息,测试等相关技术的支持。
Spring使用简单的POJO来进行企业级开发,每一个被Spring管理的Java对象都称之为Bean,而Spring提供了一个IoC容器用来初始化对象,解决对象间的依赖管理和对象的使用。
- AOP
AOP是面向切面编程,相当于OOP面向对象编程。
Spring的AOP存在的目的是为了解耦,AOP可以让一组类共享相同的行为,在OOP中只能通过继承类和实现接口,来使代码的耦合度增强,且类集成只能为单继承。
它允许程序员将横切关注点,如日志记录,事务管理,安全性等进行业务逻辑分离从而提高代码的逻辑性和可维护性
支持使用XML或注解(如@Aspect、@Before、@After、@Around)来配置切面。
常用的注解有:
通过@Aspect 注解声明一个切面
通过@Component让此切面成为Spring容器管理的Bean
通过@PointCut注解声明切点
通过@After注解声明一个建言,并使用@PoinyCut定义切点
通过反射可获得注解上的属性,然后做日志记录相关的操作
通过@Before注解声明一个建言,此建言直接使用拦截规则作为参数
- IoC
控制反转是一种设计原则,用来减少计算机程序运行的依赖关系。允许程序在运行时态适应和配置对应的关系。IoC通常是通过依赖注入来实现的,其实就是减少业务层new来创建dao层对象
- Spring使用IoC容器来管理应用程序中的对象,这些对象被称为Beans。
- 通过@Autowired注解,Spring可以自动装配Bean的依赖关系。
- 可以在XML配置文件或使用注解(如@Component、@Service、@Repository)来配置Bean
总结:通过结合使用AOP和IoC,Spring框架提供了一种强大的方式来构建松耦合、易于测试和维护的应用程序。AOP允许开发者将业务逻辑与横切关注点分离,而IoC则简化了组件之间的依赖管理和配置