Spring入门(一)

╄→гoц情女王★ 提交于 2020-02-25 23:53:11

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,这就是工厂设计模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!