您的位置:首页 > 编程语言 > Java开发

001- Spring入门及maven构建spring的web项目

2015-08-04 11:39 651 查看

Spring入门

1、Spring作用

Spring提供了一个管理Bean组件的容器,该容器还提供了IOC和AOP特性。基于实现组件之间的解耦、组件的重复利用,提高程序灵活性。

1.1、IOC

IOC Inversion Of Controll 反向控制,是一种设计思想。在Spring中,是指将对象的控制权交给Spring容器管理。

控制权:可以指定调用关系,可以创建对象,可以管理和释放对象。

传统的程序设计:使用者(客户端类)需要创建使用类(用户类)、使用类(用户类)的依赖类(用户信息类)、装配他们及使用完销毁他们。



使用IoC思想后:使用者(客户端)只需要从IoC容器中获取使用类(用户类)



1.2、AOP

Aspect Oriented Programming面向方面编程。

面向方面编程优点:将共通处理封装成了一个独立组件,利用配置形式作用在了某一批目标对象上,实现组件的重复利用,将切面和目标对象解耦,实现了低耦合应用。如:日志记录,事务处理,异常处理等等

2、基本使用

2.1、获取bean

通过ApplicationContext对象的getBean("bean配置的id")方法获取。

以下是获取ApplicationContext对象方法:

a、 在初始化时保存

ApplicationContext ac = new ClassPathXmlApplicationContext ("applicationContext.xml");

说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。

b、通过具类获取

ac1= WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);

ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);

这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。

上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。

c、 继承自抽象类或接口

1)、抽象类ApplicationObjectSupport、WebApplicationObjectSupport提供getApplicationContext()方法,

Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。

2)、实现ApplicationContextAware接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。

Spring初始化时,会通过该方法将ApplicationContext对象注入。

2.2、bean基本配置

id属性:组件的在容器中的标识符.
name属性:功能与id属性一样,区别在于name可以使用特殊字符;id不允许
class属性:指定组件类型
scope属性:指定组件对象创建模式。支持singleton(默认)和prototype。
singleton:指的是bean组件对象采用单例模式创建。值:true、false
prototype:指的是每次调用ac.getBean(),都会创建一个新的Bean对象返回。值:true、false

  Bean组件在容器中的创建和销毁
  a.如果bean定义scope采用非单例模式,该对象在调用ac.getBean()创建,使用完毕后,由垃圾回收器负责销毁
  b.如果bean定义scope采用singleton(默认)
  创建时机:在容器实例化时创建(默认)
  销毁时机:在容器销毁时销毁,调用AbstractApplicationContext的close()方法.

init-method:指定对象初始化方法;
destroy-method:指定对象销毁方法.
lazy-init:对象创建延迟到调用ac.getBean("")方法.如果需要将容器中所有scope="singleton"组件都采用延迟创建,可以在<beans default-lazy-init="true">

3、demo

本例使用工程名:004maven_spring,tomcat中间件端口:8080

创建maven的web项目参照:maven项目与myEclipse

3.1、pom.xml配置

在pom.xml的dependencies元素添加子元素:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>2.5.6</version>
</dependency>


3.2、web.xml配置

在web.xml的web-app元素添加子元素:

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

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


3.3、添加User类

在/src/main/java目录添加包:com.cft.demo.spring,再添加User类:

package com.cft.demo.spring;

public class User {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}


3.4、添加文件applicationContext.xml  

 在/src/main/config目录下新建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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" >

<bean id="user"  class="com.cft.demo.spring.User"/>

</beans>


3.5添加spring.jsp 

在/src/main/webapp添加spring.jsp:

<%   org.springframework.context.ApplicationContext ac = org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext(application);
com.cft.demo.spring.User user = (com.cft.demo.spring.User)ac.getBean("user");
user.setName("cft");%>
<%=user.getName() %>


3.6验证测试  

浏览器输入url:http://localhost:8080/004maven_spring/spring.jsp



出现以上界面说明配置成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: