Spring系列之基本配置
一、概述
Spring是一个轻量级的Java开源框架,是为了简化企业级系统开发而诞生的。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。主要有以下几个特点:
(1)轻量:从大小和开销两方面而言Spring都是轻量的
(2)控制反转:应用IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象
(3)面向切面:Spring将业务逻辑从系统服务中分离开来,实现内聚开发
(4)容器:它包含并且管理系统对象的生命周期和配置
(5)框架:实现了使用简单的组件配置组合成一个复杂的系统
二、Spring模块
Spring框架大约由20多个小模块组成,这些模块分为:核心容器,数据访问/集成,Web,面向切面编程(AOP),消息和测试等等,如下图所示

下面逐一介绍这几大模块:
1.核心容器:核心容器包括spring-core, spring-beans,spring-context, spring-context-support, 和spring-express,其中spring-core和spring-beans模块提供框架的基础部分,包括控制反转和依赖注入。BeanFactory是一个复杂的工厂模式的实现。上下文(spring-context)模块建立在Core和Bean模块的基础之上:它提供了一种框架风格来访问对象,类似于JNDI注册表。Context模块继承了Bean模块的特点并增加了对国际化、事件传播、资源加载等的支持。ApplicationContext接口是Context模块的焦点。spring-context-support支持将第三方库集成到Spring应用中,例如缓存,JavaMail、模板引擎等。spring-expression模块为运行时查询和操作对象提供了强大的表达式语言,它是JSP2.1中的EL语言的扩展,这种语言支持设置和获取属性值,属性赋值,方法调用,访问数组,逻辑和算术运算符,还支持列表投影、选择和常见的聚合。
2.面向切面:Spring的AOP封装包提供了符合AOP Alliance规范的面向切面的编程实现,让你可以定义,例如方法拦截器和切点,从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。
3.消息传送:Spring FrameWork 4包括一个spring-messaging模块,它是从Spring集成项目的关键抽象,如Message, MessageChannel,MessageHandle。该模块该包含一组注释映射消息的方法,类似Spring MVC基于注释的编程模型。
4.数据访问/集成:这一层包括JDBC、ORM、OXM、JMS和事务模块。spring-jdbc模块提供了一个JDBC抽象层从而消除了令人乏味的JDBC编程和解析数据库提供商特定的错误。spring-tx模块支持类的编程和声明式事务管理,实现特殊的接口和你的POJO(Plain Old Java Objects)。spring-orm模块提供了流行的对象-关系映射集成层API,包括JPA、JDO和Hibernate。使用spring-orm模块可以使这ORM框架结合Spring提供的其他特性,比如前面提到的简单的声明式事务管理。spring-oxm模块提供了一个抽象层,支持对象/XML映射的实现,如JAXB、 Castor、XMLBeans、 JiBX和XStream。
5.网络层:包括spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet模块。spring-web模块提供基础的针对web开发的集成特性,包括文件上传功能、利用Servlet侦听器进行IOC容器初始化和针对web的应用上下文。它还包括一个HTTP客户端和Spring的web部件的远程支持。spring-webmvc模块包括Spring的MVC模型和REST Web服务实现的web应用程序,Spring的MVC框架提供了一种清晰的分离模型,在领域模型代码和web form之间,并且还可以借助Spring框架的其他特性。
6.测试层:spring-test模块支持单元测试和包含Junit或者TestNG的集成测试,它提供了Spring的ApplicationContext一致性装载和这些上下文的缓存机制,它还提供了可用于测试代码隔离的模拟对象。
三、基本配置
1、配置准备:下载Spring和commons-logging的jar包
2、新建Java工程,将jar包导入工程中

3、新建一个HelloWorld.java类
package com.spring.test;
public class HelloWorld {
private String info;
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
4、在src目录下,新建xml文件,命名为applicationContext.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
"> <bean id="hello" class="com.spring.test.HelloWorld">
<property name="info" value="Hello,This is my first Spring Application!"></property>
</bean>
</beans>
id: Bean 的唯一标识名。它必须是合法的 XML ID,在整个 XML 文档中唯一。
class: 用来定义类的全限定名(包名+类名)。
5、编写测试类TestMain.java
package com.spring.test; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMain { public static void main(String[] args)
{
//读取配置文件
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean的实例
HelloWorld t=(HelloWorld) ctx.getBean("hello");
//调用方法
System.out.println(t.getInfo());
}
}
运行程序,结果为:
综上,一个简单的Spring应用已经配置好。
Spring系列之基本配置的更多相关文章
- Spring系列.依赖注入配置
依赖注入的配置 Spring的依赖注入分为基于构造函数的依赖注入和基于setter方法的依赖注入. 基于构造函数的依赖注入 <!-- 通过构造器参数索引方式依赖注入 --> <bea ...
- Spring系列之新注解配置+Spring集成junit+注解注入
Spring系列之注解配置 Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率 你本来要写一段很长的代码来构造一个 ...
- 深入理解Spring系列之七:web应用自动装配Spring配置
转载 https://mp.weixin.qq.com/s/Lf4akWFmcyn9ZVGUYNi0Lw 在<深入理解Spring系列之一:开篇>的示例代码中使用如下方式去加载Spring ...
- Spring Cloud 系列之 Config 配置中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Config 配置中心(一) 本篇文章讲解 Config 如何实现配置中心自动刷新. 配置中心自动刷新 点击链接观看: ...
- Spring Cloud 系列之 Config 配置中心(三)
本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Config 配置中心(一) Spring Cloud 系列之 Config 配置中心(二) 本篇文章讲解 Conf ...
- Spring Cloud 系列之 Consul 配置中心
前面我们已经学习过 Spring Cloud Config 了: Spring Cloud 系列之 Config 配置中心(一) Spring Cloud 系列之 Config 配置中心(二) Spr ...
- Spring Cloud 系列之 Apollo 配置中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Apollo 配置中心(一) 本篇文章讲解 Apollo 部门管理.用户管理.配置管理.集群管理. 点击链接观看:Ap ...
- Spring Cloud 系列之 Apollo 配置中心(三)
本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) 本篇文章讲解 Apol ...
- Spring Cloud 系列之 Apollo 配置中心(四)
本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) Spring Clou ...
随机推荐
- git初体验(二)基础git文件操作
文件操作续 忽略一些文件 只需在主目录下建立".gitignore"文件,注意新建的是文件而非文件夹,在win窗口中不能建立以.开头的文件,只能在dos下: E:\knowcars ...
- 纯css控制-表格表头固定,内容多时滚动内容
<html> <head> <style type="text/css"> * { margin: 0; padding: 0; } /*所有内 ...
- Web前端性能优化教程01:减少Http请求
性能黄金法则 只有10%-20%的最终用户响应时间花在接收请求的HTML文档上,剩下的80%-90%时间花在HTML文档所引用的所有组件(图片,script,css,flash等等)进行的HTTP请求 ...
- NGUI之添加响应函数
public void ButtonNextClicked() { SelectIndex++; SelectIndex %= ; showGameObject(); } public void Bu ...
- css-css权威指南学习笔记3
第三章 结构和层叠 1.确定应向一个元素应用哪些值时,用户代理不仅要考虑继承,还要考虑声明的特殊性,另外需要考虑声明本身的来源,这个过程就称为层叠.. 2.特殊性.如果一个元素有两个或多个冲突的属性声 ...
- SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究
catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...
- StringBuilder类与String类的区别
String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新的String对象相关的 ...
- sql like
在java里面写sql要用 like CONCAT('%',?,'%')
- JS, Node.js, npm简介
序 听过JS,听过Node,也听过Node.js,还听过npm,然而并不是很清楚的知道都代表什么,这两天调接口,然后前端同学很忙,就自己把前端代码拿过来跑了,也趁机了解一下这几个概念,下边做个小的总结 ...
- VS 错误解决(项目-属性-启用调试器)
我是先安装了VS2012, 之后由于需要安装了VS2008, 但在VS2012中可以运行程序但是不能调试, 即按Ctrl+F5可以运行, 但是按F5会提示错误. "尝试运行项目时出错:Unc ...