摘要:简单来说,是一个轻量级的控制反转和面向切面的容器框架。的基本框架主要包含六大模块。可以与框架整合。在中是容器的实际代表者。依赖注入在容器创建对象后,处理对象的依赖关系。
目录
1. Spring开源框架的简介
2. Spring下IOC容器和DI(依赖注入Dependency injection)
一、Spring开源框架的简介Spring是一个开源框架,也是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE。
Spring DAO:Spring提供了对JDBC的操作支持:JdbcTemplate模板工具类 。
Spring ORM:Spring可以与ORM框架整合。例如Spring整合Hibernate框架,其中Spring还提供HibernateDaoSupport工具类,简化了Hibernate的操作 。
Spring WEB:Spring提供了对Struts、Springmvc的支持,支持WEB开发。与此同时Spring自身也提供了基于MVC的解决方案 。
Spring AOP:Spring提供面向切面的编程,可以给某一层提供事务管理,例如在Service层添加事物控制 。
Spring JEE:J2EE开发规范的支持,例如EJB 。
Spring Core:提供IOC容器对象的创建和处理依赖对象关系 。
IOC容器:就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例,控制权由程序员控制,而"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做。。在Spring中BeanFactory是IOC容器的实际代表者。
DI(依赖注入Dependency injection) :在容器创建对象后,处理对象的依赖关系。
依赖注入spring的注入方式:
set注入方式
静态工厂注入方式
构造方法注入方式
基于注解的方式
1、set注入方式:
控制层代码:
private OrderServiceImp orderService; public void setOrderService(OrderServiceImp orderService) { this.orderService = orderService; }
Spring配置XML文件:其中配置声明OrderAction类存在属性orderService。程式运行时候,会将已经实例化的orderService对象调用setOrderService方式注入。
2、构造器注入方式:
控制层代码:
private OrderServiceImp orderService; public OrderAction(OrderServiceImp orderService) { this.orderService = orderService; }
Spring配置XML文件:
3、基于注解的方式(推荐使用,比较便捷少配置)
控制层代码:
@Autowired //@Resource private OrderServiceImp orderService;
服务层代码:
@Service("orderService") public class OrderServiceImp implements IOrderService { @Autowired private JavaOrderMDaoImp javaOrderMDao; @Autowired private JavaOrderDDaoImp javaOrderDDao; @Override public ListfindOrderM(OrderSearch search) { return javaOrderMDao.findJavaOrderM(search); } @Override public List findOrderD(OrderSearch search) { return javaOrderDDao.findJavaOrderD(search); } }
DAO层代码:
@Repository("javaOrderMDao") public class JavaOrderMDaoImp extends BaseHibernateDAOimplements IJavaOrderMDao {...}
@Repository("javaOrderDDao") public class JavaOrderDDaoImp extendsBaseHibernateDAOimplements IJavaOrderDDao {...}
注意点:
⑴ 持久层DAO层注解Repository中规定了名称,在Service层中声明名称必须一致。
⑵ 服务层Service层注解Service中规定了名称,在控制层中声明的名称必须一致。
⑶ 注解方式注入依赖注解:
@Component 把对象加入ioc容器,对象引用名称是类名,第一个字母小写 @Component(“name”) 把指定名称的对象,加入ioc容器 @Repository 主要用于标识加入容器的对象是一个持久层的组件(类) @Service 主要用于标识加入容器的对象是一个业务逻辑层的组件 @Controller 主要用于标识加入容器的对象是一个控制层的组件 @Resource 注入属性(DI), 会从容器中找对象注入到@Resource修饰的对象上 @Autowired 注入属性(DI), 会从容器中找对象注入到@Autowired修饰的对象上
⑷ 注解可以简化配置,提升开发效率,但是也不利于后期维护。
注:@Autowired与@Resource的区别
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71763.html
摘要:构造函数注入通过调用类的构造函数,将接口实现类通过构造函数变量传入。而在中,其使用横切技术,将这类代码从原属的封装对象中提取出来,封装到一个可重用模块中,称为。 最近实习用到Spring的开发框架,但是之前没有接触过,因此希望利用网上的资源来学习以下。 Spring官方给出了非常全面的介绍,非常适合我这种完全的小白……在这一系列学习中,我阅读的主要资源是5.1.2 Reference ...
摘要:的两大核心机制是控制反转和面向切面编程,对于初学者来讲,搞清楚这两个核心机制就掌握了的基本应用。配置对象张三添加标签对应属性名,是属性的值。若包含特殊字符,比如张三,使用张三进行配置,如下所示。 前言 对于任何一个 Java 开发人员,Spring 的大名一定如雷贯耳,在行业中可谓是无人不知、无人不晓,说它是 Java 领域第一框架毫不为过。 showImg(https://segme...
摘要:甲乙交易活动不需要双方见面,避免了双方的互不信任造成交易失败的问题。这就是的核心思想。统一配置,便于修改。带参数的构造函数创建对象首先,就要提供带参数的构造函数接下来,关键是怎么配置文件了。 前言 前面已经学习了Struts2和Hibernate框架了。接下来学习的是Spring框架...本博文主要是引入Spring框架... Spring介绍 Spring诞生: 创建Spring的...
摘要:使用的好处知乎的回答不用自己组装,拿来就用。统一配置,便于修改。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总的来说还是非常值得的! 本来想的是刷完《Spring 实战 (第4版)》和《精通Spring4.x 企业应用开发实战》...
摘要:从而能够进一步深入了解框架。至此我们框架开发完成。虽然说阅读源码是了解框架的最终手段。但是框架作为一个生产框架,为了保证通用和稳定,源码必定是高度抽象,且处理大量细节。下一篇文章应该会是徒手撸框架实现。 原文地址:https://www.xilidou.com/2018/... Spring 作为 J2ee 开发事实上的标准,是每个Java开发人员都需要了解的框架。但是Spring 的...
阅读 1137·2021-10-18 13:32
阅读 2209·2021-09-24 09:47
阅读 1244·2021-09-23 11:22
阅读 2373·2019-08-30 14:06
阅读 496·2019-08-30 12:48
阅读 1924·2019-08-30 11:03
阅读 451·2019-08-29 17:09
阅读 2353·2019-08-29 14:10