文档章节

Spring(二):配置和简单使用

_
 _Roger_
发布于 2015/08/16 08:58
字数 876
阅读 275
收藏 10

1、下载地址(目前使用的是4.2.0)

下面都可以

http://repo.springsource.org/libs-release-local/org/springframework/spring

http://repo.spring.io/simple/libs-release-local/org/springframework/spring/

源码可以在Git上获取,地址:

https://github.com/spring-projects/spring-framework 

2、相关jar包

Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现

Spring Aspects:Spring提供的对AspectJ框架的整合

Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。

Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。

Spring Context Support:Spring context的扩展支持,用于MVC方面。

Spring Core:Spring的核心工具包

Spring expression:Spring表达式语言

Spring Framework Bom:

Spring Instrument:Spring对服务器的代理接口

Spring Instrument Tomcat:Spring对tomcat连接池的集成

Spring JDBC:对JDBC 的简单封装

Spring JMS:为简化jms api的使用而做的简单封装

Spring Messaging:

Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现

Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换

Spring test:对JUNIT等测试框架的简单封装

Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。

Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。

Spring webmvc:包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、asperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。

Spring webmvc portlet:Spring MVC的增强

Spring websocket:


将以上jar包以及commons-logging.jar加入BuildPath即可

3、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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>


4、在独立应用程序中简单的获取Bean

简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象),ApplicationContext可以用ClassPathXmlApplicationContext 或者FileSystemXmlApplicationContext 

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("E:/Java_Project/TestSpring/src/applicationContext.xml");

context.getBean("配置文件中的beanId");


5、Web开发中的ApplicationContext加载器

 加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。 

       这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。 

        ContextLoaderServlet已经不推荐用了,它只是为了兼容低版本的servlet.jar才用的。总的来说:Listerner要比Servlet更好一些,而且Listerner监听应用的启动和结束,而Servlet启动要稍微延迟一些。


配置非常简单,在web.xml中增加:

<listener> 
     <listener-class> 
          org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
</listener>

或者

<servlet> 
       <servlet-name>context</servlet-name> 
       <servlet-class> 
          org.springframework.web.context.ContextLoaderServlet 
       </servlet-class> 
       <load-on-startup>1</load-on-startup> 
</servlet>


通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化


ApplicationContext实例,如果需要指定配置文件位置,可通过context-param加以指定:

<context-param> 
       <param-name>contextConfigLocation</param-name> 
       <param-value>/WEB-INF/myApplicationContext.xml</param-value> 
</context-param>


配置完成之后,即可通过 

WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext引用

ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(); 
ctx.getBean("beanId");


© 著作权归作者所有

_
粉丝 31
博文 82
码字总数 39915
作品 0
武汉
私信 提问
spring整合kaptcha验证码

kaptcha简介: kaptcha 是一个很有用的验证码生成工具,由于它有许多可配置项,所以用它可以简单快捷的生成各式各样的验证码。 开发工具及使用的核心技术: 1、eclipse 2、mybatis 3、spring ...

贪挽懒月
2018/05/09
0
0
征服 Redis + Jedis

用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等。基于这些限制,有必要考虑Redis! 相关链接: 征服 Redis 征服 Redis + Jedis 征服 Redi...

凯文加内特
2015/03/18
145
0
SpringBoot(二)之核心

Spring Boot的核心 在上篇中我们成功运行了一个简单的web应用,其中有一个注解被轻易的带过了,但它在Spring Boot中是最重要的注解,没有之一,它就是@SpringBootApplication,本篇将对它与S...

郑加威
2018/12/23
72
0
Activiti与Spring结合的多种方式

一、手动注入 在Activiti中使用TaskListener时,如果是使用的类型是Class时,使用Spring是无法自动注入需要的bean的,网上查了下,原因是Acitivi引擎会在内部使用Class.newInstance(...)的方...

lixuelong
2017/12/06
70
0
2018前沿技术微服务之什么是spring cloud

一、微服务介绍 以一个一个模块划分系统,每个模块独立运行。如何定义模块的边界需要靠经验和技巧。 二、微服务的架构 微服务需要要清晰的业务边界,高度的模块服务化解耦 每个模块都完成自己...

A尚学堂Len老师
2018/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

xiangyunyan
12分钟前
3
0
返回提示信息,如:xxx创建成功!

【服务端】在输出的方法块中,加入要输出的字段(qcm_batch_id) QCMUserType.cs: public struct QCM_Custom_Create_Batch_Out_Tag { public BASCoreType.Cmn_Out_T......

_Somuns
12分钟前
3
0
Aliyun Serverless VSCode Extension v1.12.0 发布

Aliyun Serverless VSCode Extension 是阿里云 Serverless 产品 函数计算 Function Compute 的 VSCode 插件,该插件结合了函数计算 Fun 工具以及函数计算 SDK ,是一款 VSCode 图形化开发调试...

阿里云官方博客
13分钟前
4
0
程序员如何培养解决复杂问题的能力?

今天在上网时候,突然看到了这篇文章,感觉非常的适合现在的自己去思考下,可能也适用在座的读者。程序员不仅仅是敲代码,更是一个复合能力的结合体,也不仅仅停留在技术和代码阶段。你想要成...

哥本哈根的小哥
16分钟前
5
0
市场变化驱动产品思维升级

宜信科技中心财富管理产品部负责人Bob,与大家一起聊聊个性化推荐产品功能的设计和B端产品的功能策划方式。 拓展阅读:回归架构本质,重新理解微服务 智慧金融时代,大数据和AI如何为业务赋能...

宜信技术学院
17分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部