Maven+Spring环境搭建

1.什么是Spring?

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2.为什么要用Spring?

非侵入式:使用spring只需要添加配置文件或者注解即可使用,无需让我们的业务类继承Spring类或者实现Spring接口。

控制反转IoC:通过DI(依赖注入)的方式,我们不需要手动创建对象,而是直接获取Spring容器管理的对象。

面向切面编程AOP:应用中的业务类只需要关注业务即可,而无需关注系统级需求,通过面向切面的方式,我们可以实现事务管理和系统日志。

容易整合其他框架:如struts,hibernate,mybatis等框架。

3.怎样使用Spring?

(1)pom.xml

<dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
 
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-beans</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
 
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
 
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-tx</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
 
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-web</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
 
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>${spring.version}</version>  
            <scope>provided</scope>  
        </dependency>

(2)配置Spring-context.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-3.0.xsd">
 
    <bean id="springTestBean" class="com.inuniversal.test.SpringTest">
        <property name="param" value="xml测试参数" />
    </bean>
</beans>

(3)java代码测试:

SpringTest.java

public class SpringTest {
	private String param;

	public String getParam() {
		return param;
	}

	public void setParam(String param) {
		this.param = param;
	}
	
	public void printParam(){
		System.out.println("SpringTest:"+param==null?"默认参数":param);
	}
}
测试入口类:SpringTestBootstrap.java

public class SpringTestBootstrap {
	public static void main(String[] args){
		ApplicationContext context = new ClassPathXmlApplicationContext(
                "spring-context.xml");

		SpringTest obj = (SpringTest) context.getBean("springTestBean");
        obj.printParam();
	}
}
以上就是在java项目中使用Spring的方法。那么如何在java web环境下使用Spring呢?

4.Tomcat+Spring
(1)在web.xml中添加如下配置:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-context.xml</param-value>
  </context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  </listener>
其中contextConfigLocation参数是类ContextLoaderListener中createWebApplicationContext方法要使用的参数。

spring-context.xml中的内容还如上;

(2)编写servlet测试类:

@WebServlet("/springTest")
public class SpringTomcatTextBootstrap extends HttpServlet{
    private SpringTest springTest;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();  
        WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);  
        springTest = (SpringTest) context.getBean("springTestBean");
        springTest.printParam();
        /*
         deal request
         ......
         deal response
         */
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        this.doGet(request, response);  
    }
}
在编写测试的过程中出现两个问题:

(1)如果在web.xml配置了struts过滤器,那么@WebServlet注解将失效。

(2)要使用@WebServlet注解,就要依赖javaee.jar包。javaee.jar包和servlet-api.jar包的区别:通过查看两个jar包的内容,javaee.jar包包含servlet-api.jar包中的内容,所以不要重复引入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值