sping 的使命 简化java 开发
最根本的使命:简化Java开发
为了降低Java开发的复杂度,Spring 采取了以下 4 种关键策略:
- 基于POJO的轻量级和最小侵入性编程
- 通过依赖注入和面向接口实现松耦合
- 通过切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码
激发POJO 的潜能
Spring 不会强迫你实现Spring 规范的接口或继承Spring 规范的类,最坏的情况只不过是你在POJO中使用Spring的注解,但它依旧是一个POJO
public class User {
private String name;
private Integer age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
没有任何地方表明它是一个Spring组件,它在Spring应用和非Spring应用中发挥着一样的作用,这就是Spring的非侵入模型
依赖注入
按传统的做法,每个对象负责管理与自己相互协作的对象(即它所依赖的对象)的引用,这将会导致高度耦合和难以测试的代码
耦合具有两面性,一方面紧密耦合性的代码难以测试,难以复用,难以理解。另一方面,一定程度的耦合又是必须的,完全没有耦合的代码什么也做不了。所以耦合是必须的,但是必须小心谨慎的去管理
通过依赖注入,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定,对象无需自行创建和管理它们的依赖关系。
应用切面
面向切面编程aop允许你把遍布在应用各个模块的相同的功能分离出来形成可重用的组件
aop使应用中的组件只关心自己核心和真正的功能,而不需要去考虑其他与其相关的东西,比如一个订单模块,他只需要关心与订单相关的东西,其他诸如日志、事务管理以及安全这些它不需要关心,aop将这些功能抽离出来
使用模板消除样板式代码
Spring 旨在通过模板封装来消除样板式代码,比如Spring 的JdbcTemplate使得执行数据库操作时,避免传统的JDBC样板代码。
网友评论