Spring概述
1.1.Spring介绍
? Spring是轻量级Java EE应用开源框架(官网: http://spring.io/ ),它由Rod Johnson创为了解决企业级编程开发的复杂性而创建
1.2.简化应用开发体现在哪些方面?
-
IOC
解决传统Web开发中硬编码所造成的程序耦合
-
AOP
实现在运行期间不修改源代码对程序进行增强
-
粘合剂
Spring是一个超级粘合平台,除了自己提供功能外,还提供整合其他技术和框架的能力
1.3.Spring的体系结构
Spring 框架根据功能的不同大体可分为 Data Access/Integration(数据访问与集成)
、Web
、AOP、Aspects、Instrumentation(检测)、Messaging(消息处理)
、Core Container(核心容器)
和 Test
。
- Core Container: 框架的最基础部分,提供控制反转和依赖注入特性
- AOP :提供了面向切面的编程的实现
- Data Access/Integration:简化了持久层的操作
- Web:提供了Spring MVC Web 框架实现以及与Servlet、WebSocket的集成
- Test:方便程序的测试
1.4.Spring的发展历程
-
1997年IBM提出了EJB的思想
-
1998年,SUN制定开发标准规范EJB1.0
-
1999年,EJB1.1发布
-
2001年,EJB2.0发布
-
2003年,EJB2.1发布
Rod Johnson(spring之父)
?
Expert One-to-One J2EE Design and Development(2002)
? 阐述了J2EE使用EJB开发设计的优点及解决方案
?
Expert One-to-One J2EE Development without EJB(2004)
? 阐述了J2EE开发不使用EJB的解决方式(Spring雏形)
-
2006年,EJB3.0发布
-
2017年9月发布了Spring的最新版本Spring5.0通用版x
2.Spring IOC
创建工程:
2.1.程序的耦合
-
耦合:耦合指的就是对象之间的依赖关系。对象之间的耦合越高,维护成本越高。
-
案例:没有引入IOC容器时系统的Web层、业务层、持久层存在耦合
/** * 持久层实现类 */ public class UserDaoImpl implements UserDao { @Override public void addUser(){ System.out.println("insert into tb_user......"); } }
/** * 业务层实现类 */ public class UserServiceImpl implements UserService { //硬编码:此处有依赖关系 private UserDao userDao = new UserDaoImpl(); public void addUser(){ userDao.addUser(); } }
/** * 模拟表现层 */ public class Client { public static void main(String[] args) { //硬编码:此处有依赖关系 UserService userService = new UserServiceImpl(); userService.addUser(); } }
-
问题分析:
上边的代码service层在依赖dao层的实现类,此时如果更改dao了层的实现类或此时没有dao层实现类,编译将不能通过。
-
IOC(工厂模式)解耦:
- 把所有的dao和service对象使用配置文件配置起来
- 当服务器启动时读取配置文件
- 把这些对象通过反射创建出来并保存在容器中
- 在使用的时候,直接从工厂拿
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!