spring如何做到简化开发
1.spring使用了简单的bean的轻量级和最小侵入性编程
当我们声明一个简单的javabean类时,我们并不能看出这是个spring的组件(这个类就是非侵入式编程模型)(除非有spring注解),即这个类只要在java语言编写的应用中都可以使用。
2.通过依赖注入和面向接口实现了松耦合
传统的类与类之间的协作,类a的a方法需要类b的b方法的协作的时候我们往往需要类a持有类b的引用这个时候就是强耦合了,难以复用,出现问题可能导致连锁反应,加入我们需要类c的c方法来协助的话就需要去改代码,假如这个类a的a方法被其他类使用的话,还需要去修改其他代码,而当我们使用接口的时候就不会出现这种情况了,我们只需要更换不同的接口实现类就可以改变所有对类a的a方法的调用(不同的类实现同一接口,对接口中的方法不同类有不同的实现),通过di(依赖注入)来实现,组件之间的协作称为装配,如何进行装配呢,xml形式的装配,或者基于java的配置,代码并不知道依赖的的是接口具体的哪个实现类,或者这个这个实现类是从哪里来的,这些事情我们交给spring去管理装配(我么可以在不改变所依赖接口的情况下改变依赖关系)
--------------------------------------------------------------------------------------------------------备注:applicationcontext负责对象的创建和组装,spring自带多种应用上下文的实现,当我们使用.xml方式的时候我们可以选择classpathxmlapplicationcontext负责应用类路径下的一个或多个xml文件。只有在xml文件里面才知道接口到底用了那个实现类,代码并不知道
3.基于切面和惯例进行声明式编程
应用中分为很多的模块,不同的模块执行自己独特核心业务逻辑,但是模块往往还会实现系统服务的代码,这些系统服务分布在各个模块当中,这样会使代码逻辑变的复杂,当系统服务发生变化时所有模块的系统服务都要发生变化,aop能够使这些模块不需要关注系统服务,只关心核心业务逻辑。
4.基于切面和模板减少样板代码
对大量重复代码进行封装,如jdbc连接数据库释放资源,封装成了一个模板类