Spring简介
1、什么Spring?
Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架
2、Spring的优势
- 方便解耦,简化开发
通过 Spring提供的 IoC容器,可以将对象间的依赖关系交由 Spring进行控制,避免硬编码所造 成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可 以更专注于上层的应用
- AOP编程的支持
通过 Spring的 AOP 功能,方便进行面向切面的编程,许多不容易用传统OOP 实现的功能可以通过 AOP 轻松应付.
- 声明式事务的支持
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理, 提高开发效率和质量
- 方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可 做的事情
- 方便集成优秀的框架
3、Spring体系结构
- Spring的体系结构
- SpringMVC、Spring和Mybatis间的关系图
一、现在程序面临着什么问题
1、程序耦合性太强
什么是程序耦合性?
- 耦合:程序间的依赖关系
- 类之间的依赖
比如:在业务层使用数据层来读取数据库的代码时
public AccountServiceImpl implements IAccountService{ //需要new Dao层对象,表明service层和dao层耦合性强 private IAccountDao accountDao=new AccountDaoImpl(); public void saveAccount(){ accountDao.saveAccount(); } }
- 方法之间的依赖
2、程序解耦
- 解耦:降低程序之间的依赖关系,在实际开发中,应该做到编译期不依赖,运行时才依赖
- 使用反射来创建对象,避免使用new关键字
- 通过读取配置文件来获取要创建的对象全限定类名
2.1、采用工厂模式进行解耦
- Bean的概念
在计算机中,bean表示可重用组件
- javaBean:用java语言编写的可重用组件
我们认为的javaBean就是创建的实体类,其实javaBean的范围远大于实体类,它可以表示整个service层、dao层等一些更广的概念
- 单例和多例
- 单例:对象被创建一次,重复使用
- 多例:对象被创建多次
理解完上述概念,即定义一个容器,容器里放置了配置文件所有的bean对象,当某一个类依赖另一个类时,只需要从从容器里取出该对象即可,不需要重新new,这就是工厂设计模式
来源:CSDN
作者:Simeon郎
链接:https://blog.csdn.net/dreame_life/article/details/104495546