博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring系列之基本配置
阅读量:4915 次
发布时间:2019-06-11

本文共 2888 字,大约阅读时间需要 9 分钟。

一、概述

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,内容如下:

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应用已经配置好。

转载于:https://www.cnblogs.com/xiaoxi/p/5845016.html

你可能感兴趣的文章
一套Tomcat处理多个域名请求 - Virtual Host
查看>>
[ubuntu] 外挂硬盘
查看>>
CommonJS是如何提高javascript的生产力的
查看>>
在 Windows 上安装 Hadoop 教程(转)
查看>>
PHP数组函数(4)
查看>>
js获取一个对象的所以属性和值
查看>>
XML解析之SAX详解
查看>>
leetcode 338. Counting Bits
查看>>
NUMBER类型细讲
查看>>
koa2-3
查看>>
MySQL慢查询日志总结
查看>>
ipad常见错误
查看>>
时钟效果
查看>>
Linux下安装与配置Nginx
查看>>
FCC 基础JavaScript 练习7
查看>>
真的要听妈妈的话。
查看>>
bzoj4873: [Shoi2017]寿司餐厅
查看>>
结对-航空购票系统-开发过程
查看>>
分支语句
查看>>
VBA语句 - 判断语句
查看>>