Spring 教程06

spring-6
1.    Xml

<!-- \build\classes\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">

    <bean id="person"
        class="com.atguigu.spring.struts2.beans.Person">
        <property name="username" value="atguigu"></property>
    </bean>

</beans>

<!-- \src\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">

    <bean id="person"
        class="com.atguigu.spring.struts2.beans.Person">
        <property name="username" value="atguigu"></property>
    </bean>

</beans>

<!-- \WebContent\WEB-INF\web.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <context-param>
    <param-name>configLocation</param-name>
    <param-value>applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>com.atguigu.spring.struts2.listeners.SpringServletContextListener</listener-class>
  </listener>
  <servlet>
    <description></description>
    <display-name>TestServlet</display-name>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.atguigu.spring.struts2.servlets.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>
</web-app>
2.    Java

// \src\com\atguigu\spring\struts2\beans\Person.java
package com.atguigu.spring.struts2.beans;

public class Person {

    private String username;

    public void setUsername(String username) {
        this.username = username;
    }

    public void hello(){
        System.out.println("My name is " + username);
    }

}

// \src\com\atguigu\spring\struts2\listeners\SpringServletContextListener.java
package com.atguigu.spring.struts2.listeners;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Application Lifecycle Listener implementation class SpringServletContextListener
 *
 */
public class SpringServletContextListener implements ServletContextListener {

    /**
     * Default constructor.
     */
    public SpringServletContextListener() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent arg0) {
        //1. 获取 Spring 配置文件的名称.
        ServletContext servletContext = arg0.getServletContext();
        String config = servletContext.getInitParameter("configLocation");

        //1. 创建 IOC 容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext(config);

        //2. 把 IOC 容器放在 ServletContext 的一个属性中.
        servletContext.setAttribute("ApplicationContext", ctx);
    }

    /**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
    }

}

// \src\com\atguigu\spring\struts2\servlets\TestServlet.java
package com.atguigu.spring.struts2.servlets;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.context.ApplicationContext;

import com.atguigu.spring.struts2.beans.Person;

/**
 * Servlet implementation class TestServlet
 */
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1. 从 application 域对象中得到 IOC 容器的引用
        ServletContext servletContext = getServletContext();
        ApplicationContext ctx = (ApplicationContext) servletContext.getAttribute("ApplicationContext");

        //2. 从 IOC 容器中得到需要的 bean
        Person person = ctx.getBean(Person.class);
        person.hello();
    }

}
3.    Jsp

<!-- \WebContent\index.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <a href="TestServlet">TestServlet</a>

</body>
</html>
时间: 2024-11-07 15:58:13

Spring 教程06的相关文章

Spring(06)IOC 依赖注

目录 Spring(06)IOC 依赖注 1. 依赖注入的模式和类型 1.1 依赖注入模式 1.2 依赖注入类型 2. 自动绑定(Autowiring) 3. 自动绑定(Autowiring)模式 4. 自动绑定(Autowiring)限制和不足 5. Setter 方法依赖注入 6. 构造器依赖注入 7. 字段注入 8. 方法注入 9. 回调注入 10. 依赖注入类型选择 11. 基础类型注入 12. 集合类型注入 13. 限定注入 14. 延迟依赖注入 15. 依赖处理过程 16. @Aut

Spring教程:tutorialspoint-spring

来自turorialspoint的Maven教程(英文),官网:https://www.tutorialspoint.com/spring/index.htm 这个教程在国内已经被翻译成中文(不过是属于机器翻译),官网:http://wiki.jikexueyuan.com/project/spring/ 离线版本:链接:http://pan.baidu.com/s/1miJUM5i 密码:qj4q 总结: 1.本书比较容易上手,功能点达到中级,不会讲解升深入的难点,基本把Spring中级的功能

Spring 教程(四) Hello World 实例

Hello World 实例 让我们使用 Spring 框架开始实际的编程.在你开始使用 Spring 框架编写第一个例子之前,你必须确保已经正确地设置了 Spring 环境,正如在 Spring——环境设置 教程中如所说的.假设你有了解一些有关 Eclipse IDE 工作的知识. 因此,让我们继续编写一个简单的 Spring 应用程序,它将根据在 Spring Beans 配置文件中配置的信息输出 “Hello World!” 或其他信息. 第 1 步:创建 Java 项目 第一步是使用 E

Spring 教程(三) 环境设置

环境设置 本教程将指导你如何准备开发环境来使用 Spring 框架开始你的工作.本教程还将教你在安装 Spring 框架之前如何在你的机器上安装 JDK,Tomcat 和 Eclipse. 第 1 步:安装 Java 开发工具包(JDK) 你可以从 Oracle 的 Java 网站 Java SE Downloads 下载 SDK 的最新版本.你会在下载的文件中找到教你如何安装 JDK 的说明,按照给出的说明安装和配置 JDK 的设置.最后,设置 PATH 和 JAVA_HOME 环境变量,引入

spring教程

Spring框架是Java EE开发中最流行的框架,已经成为JEE事实上的标准,全世界的开发人员都在使用Spring框架开发各种应用.随着Spring boot,Spring cloud新版本的不断推出,以及微服务的流行,Spring已经成为JEE开发"必修"项目. 本教程介绍spring框架的核心概念:DI.AOP等.本教程遵循二八原则(80%的场景只会用到20%的技术,也就是说大多数场景只会用少最常用的技术),我们只讲最重要最常用的部分,让你不走弯路,花最少时间学到最多. Spri

【spring教程之四】spring中bean的作用域

1. <bean id="stage" class="com.test.pro.Stage"> 在spring中,bean默认都是单例的,也就是说,spring容易只会实例化一次,在以后的每次调用中,都会使用同一个实例.下面的例子可以说明: 2.测试类 package com.test.pro; import org.springframework.context.ApplicationContext; import org.springframewor

avalon2学习教程06样式操作

avalon2的ms-css的变革思路与ms-attr一样,将多个操作合并成到一个对象里面处理,因此没有ms-css-name="value",只有ms-css="Object"或ms-css="Array". 注意,当你用对象字面量的方式传参时,注意存在-号的键名要用""号括起来. 这个会报错.正确写法是以下两种 在avalon1.*系列,允许你在属性值中加入插值表达式,如 ms-css-width="prop&q

【spring教程之八】spring自动装配

1.在我们之间的spring装配中,如果一个bean用到了另外一个bean文件,那么格式应该是这样的: <!-- 主bean --> <bean id="A" class="com.test.pro.Singer"> <property name="myb" ref="B"></property> </bean> <!-- 被装配的bean --> <

【spring教程之七】spring注入list

1.主要配置修改就是两点,一点是xml配置文件中,另外就是bean的注入中. <bean id="jack" class="com.test.pro.Singer"> <property name="language"> <list> <value>英文</value> <value>中文</value> <value>日文</value>