Spring01_spring概述和IOC概念

1、Spring简介:
  1)Spring是分层的JavaSE/EE轻量级框架(full-stack),以IOC(Inverse Of Control反转控制)和AOP(Aspect Oriented Programming面向切面编程)为内核。提供了表现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,

还可以整合开源世界中众多的优秀的第三方框架和类库,逐渐成为使用最多的Java EE企业级应用框架

  2)Spring优势:

    a:方便解耦,简化开发

     通过Spring提供的IOC容器,可以将对象的依赖交给Spring控制,避免硬编码造成的程序耦合。用户可以不再为单例模式类,属性文件解析等这些很底层的问题进行编码,可以更专注于上层的应用。

    b:AOP编程的支持

     通过Spring的AOP功能,方便进行面向切面编程。许多不能通过OOP实现的功能可以通过AOP轻松实现。

    c:声明式事务的支持

     传统的事务需要我们通过频繁的编码控制,这里可以通过声明式方式灵活的对事务进行控制

    d:方便集成各种有序框架

     Spring可以降低各种框架的使用难度,提供了对各种优秀框架(Struts2、Hibernate、Hessina、QUartz等)的支持

    e:方便程序测试

     测试人员不需要再关注必须的实现类和接口。可以使用非容器依赖的编程方式进行几乎所有的测试工作

    f:降低Java API的使用难度。提供了经典的学习范例等等

  3)Spring的体系结构

 

2、IOC的概念和作用

  1)耦合性介绍

    耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。在软件工程中,耦合指的就是就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。

 

   2)耦合分析

public class AccountServiceImpl implements IAccountService {
  private IAccountDao accountDao = new AccountDaoImpl();
}
  上面的代码表现了:
    业务层调用持久层,此时业务层依赖持久层的接口和实现类。如果此时没有持久层的实现类,那么业务层就不可以使用。这种就是编译时期的依赖
复制代码
//1.注册驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
//3.获取预处理 sql 语句对象
//4.获取结果集
//5.遍历结果集
  在比如使用JDBC操作的时候,注册驱动我们使用的是Class.forName而不是DriverManager的registerDriver方法。
  原因:
    我们的类依赖了数据库的驱动类,如果这时候我们更换了数据库的品牌方,这里就需要修改原码来重新安装数据库连接,维护成本大,这显然不是好的方案。

复制代码

  3)解决思路

    我们注册驱动的时候是通过反射的方式进行注册,此时只需要一个字符串。我们的类中不依赖一个具体的驱动类,此时就算我们删除了原来的驱动,只需要更新一个新驱动的字符串就好。而这个字符串我们可以通过配置文件解决硬编码。

  4)工厂模式解耦

    根据这个思路我们可以把三层对象全部进行配置文件配置,然后通过工厂读取配置文件后,创建配置的对象保存起来,想用的时候直接取出类就可以。

  5)IOC

  

 

  

posted @   CGGirl  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示