Spring 4.1.6(一)

大概了解Spring

Spring 框架是轻量级的一站式的企业应用开发框架,Spring 是多模块的,它允许你使用你需要的模块。

introduce Spring

Spring 是基于Java 平台,它提供综合基本条件去构建Java应用。

使用Spring 的优势
  1. 使Java方法在数据库事务中执行,而不必处理事务API。
  2. 使本地Java方法成为远程过程,而无需处理远程API。
  3. 使本地Java方法成为管理操作,而无需处理JMX API。
  4. 使本地Java方法成为消息处理程序,而无需处理JMS API。
依赖注入和控制反转

依赖:不是自己本身的,但是又是我需要的。

public class Test1 {
	private Test2 test2;

	public Test1() {
		test2 = new Test2();
	}

}

Test1 对Test2 依赖,我们可以看出在每次构造Test1 的时候,都要构造Test2,即把Test2 写死在Test1的构造函数中,假如,这时我需要其他的怎么怎么办?

public class Test1 {
	private Test2 test2;

	public Test1(Test2 t) {
		this.test2 = t;
	}

}

因为大多数应用程序都是由两个或者更多的类通过彼此合作来实现业务逻辑,这使得每个对象都需要获取与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,那么将导致代码高度耦合并且难以维护和调试。所以就有了依赖注入。

基于上面的依赖,还是靠自己手动注入,于是便有了控制反转,帮助我们更方便实现依赖注入。

通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

这是所有的依赖对象,都将存放在控制反转的容器,在该容器通过反射,去返回相应的依赖对象,总的来说,依赖注入是控制反转的一种实现。

依赖注入最大的收益:就是在于松耦合,如果依赖的对象只通过接口来指名依赖关系,那么这种依赖在对象毫不知情的情况下,可以使用不同的具体实现来替代。

Spring 模块

在这里插入图片描述

  • The Core and Beans模块,提供了依赖注入、控制反转的特性,用来涉及到BeanFactory 。
  • Context模块构建在Core和Beans模块提供的坚实基础之上:它是一种以类似于JNDI注册表的框架样式方式访问对象的方法。 Context模块从Beans模块继承其功能,并添加对国际化(例如,使用资源包),事件传播,资源加载以及通过例如servlet容器透明创建上下文的支持。 Context模块还支持Java EE功能,例如EJB,JMX和基本远程处理。ApplicationContext接口是Context模块主要使用的。
  • Expression Language模块提供了一种强大的表达式语言, 它是JSP 2.1规范中指定的统一表达式语言(统一EL)的扩展。 该语言支持设置和获取属性值,属性赋值,方法调用,访问数组,集合和索引器的上下文,逻辑和算术运算符,命名变量以及从Spring的IoC容器中按名称检索对象。
  • JDBC模块提供了一个JDBC抽象层,无需进行繁琐的JDBC编码和解析数据库供应商特定的错误代码。
  • ORM模块为流行的对象关系映射API提供集成层,包括JPA,JDO,Hibernate和iBatis。使用ORM包,您可以将所有这些O / R映射框架与Spring提供的所有其他功能结合使用。
  • OXM模块提供了一个抽象层,支持JAXB,Castor,XMLBeans,JiBX和XStream的Object / XML映射实现。
  • Java消息传递服务(JMS)模块包含用于生成和使用消息的功能。
  • Transaction模块支持对实现特殊接口的类和所有POJO(普通旧Java对象)的类进行编程和声明式事务管理。
  • Web-Servlet模块包含用于Web应用程序的Spring的模型 - 视图 - 控制器(MVC)实现。 Spring的MVC框架提供了域模型代码和Web表单之间的清晰分离,并与Spring Framework的所有其他功能集成在一起。
  • Web-Struts模块包含用于在Spring应用程序中集成经典Struts Web层的支持类。 请注意,从Spring 3.0开始,此支持现已弃用。 考虑将您的应用程序迁移到Struts 2.0及其Spring集成或Spring MVC解决方案。
  • Web-Portlet模块提供了在portlet环境中使用的MVC实现,并镜像了Web-Servlet模块的功能。
  • Spring 的Aop 模块,实现了面向切面式编程,利用方法拦截器和切入点,可以轻松实现和源代码分离。
  • Test 模块,主要集成包括Junit,去测试Spring 组件。
Tip JavBean vs POJO

JavaBean 有严格约定,实现实现序列化的接口,提供set、get方法,提供默认的构造器。

POJO(plain-old-Java-object),没有JavaBean 约定严格,它就是一个简单的Java 对象。
参考学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值