一、四大原则
-
使用POJO进行轻量级和最小侵入式开发;
POJO被译为“纯洁老式的Java对象”,字面理解我们可以联想到以前写的Java对象没有那么多继承等操作,这样的代码写起来少了众多的耦合绑定,加载起来也相对容易,所以会是轻量级的。
最小侵入式开发:对于框架来说,上篇(可参考)我们提到Spring是轻量级的框架,不需要写一些特定的类跟框架的代码绑定联系才能使用,多使用POJO就可以实现最小的脱离框架的代码。 -
通过依赖注入和基于接口编程实现松耦合;
看下文。 -
通过AOP和默认习惯进行声明式编程;
-
使用AOP和模板减少模式化代码。
二、依赖注入
依赖注入的目的是为了解耦,IoC(控制反转) 是通过依赖注入 实现的,它的实现原理:通过容器创建对象和维护对象间的依赖关系,不需要对象本身自己去创建和姐姐自己的依赖。
我们一搬使用IoC容器负责创建Bean,并通过容器将Bean注入到所需要的Bean中,其中Spring还通过提供xml配置,注解,Java配置,groovy配置(配置元数据:描述数据的数据,Spring解析这些数据进行Bean的初始化,配置和管理依赖)来实现Bean的创建和注入。
如下:
声明Bean的注解:
@Component组件,没有明确的角色;
@Service在业务逻辑层使用;
@Repository在数据访问层使用;
@Controller在展现层(MVC);
注入Bean的注解:
@Autowired:Spring提供的注解;
@Inject;@Resource。
三、Java配置
原则:全局配置使用Java配置,如数据库相关配置,MVC相关配置;业务配置的Bean使用注解配置(@service,@component,@repository,@controller)
四、AOP
AOP:面向切面编程,步骤:
(1)使用@Aspect声明是一个切面;
(2)使用@after@before@around定义建言,可直接将拦截规则(切点)作为参数;
(3)其中@after@before@around参数拦截规则为切点,为使切点复用,可使用@pointcut专门定义拦截规则,然后在@after、@before、@around的参数中调用;
(4)其中符合条件的每一个被拦截处为连接点。
拦截方式:
注解式拦截:能很好控制要拦截的粒度和获得丰富的信息,Spring在事务处理(@transcational)和数据缓存(@cacheable等)都使用这种拦截方式。
基于方法规则拦截:
五、参考
参考书籍《Spring Boot实战》