`
m635674608
  • 浏览: 5030981 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring 获取bean 测试

 
阅读更多
package com.jayway.springsessionexample;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Optional;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.servlet.support.RequestContextUtils;
/**
 * webTest 在子容器
 * webTest2 在父容器
 * @author root
 *
 */
public class HelloServlet extends HttpServlet {

    private static final String NAME = "name";

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
    	
    	
    	
    	/*
    	 * 1.ApplicationContextAware 之能获取父容器中的
    	 * WebTest webTest = (WebTest) SpringContextHelper.getBean("webTest2");
    	System.out.println("webTest2 :"+webTest);
    	
    	
    	WebTest webTest2 = (WebTest) SpringContextHelper.getBean("webTest");
    	System.out.println("webTest :"+webTest2);*/
    	
    	//2.只能获取父容器中的,
    	/*WebTest webTest = (WebTest) ContextLoader.getCurrentWebApplicationContext().getBean("webTest2");
    	System.out.println("webTest :"+webTest);
    	
    	
    	WebTest webTest2 = (WebTest) ContextLoader.getCurrentWebApplicationContext().getBean("webTest");
    	System.out.println("webTest2 :"+webTest2);*/
    	
    	//3.只能获取父容器中的,
    	/*WebTest webTest = (WebTest) WebApplicationContextUtils.getWebApplicationContext(req.getServletContext()).getBean("webTest2");
    	System.out.println("webTest :"+webTest);
    	
    	
    	WebTest webTest2 = (WebTest) WebApplicationContextUtils.getWebApplicationContext(req.getServletContext()).getBean("webTest");
    	System.out.println("webTest2 :"+webTest2);*/
    	
    	
    /*	4. 
     *  WebTest webTest = (WebTest) RequestContextUtils.getWebApplicationContext(req).getBean("webTest2");
    	System.out.println("webTest :"+webTest);
    	
    	
    	WebTest webTest2 = (WebTest) RequestContextUtils.getWebApplicationContext(req).getBean("webTest");
    	System.out.println("webTest2 :"+webTest2);*/
    	
    	
    	/*// 5.WebApplicationObjectSupport  之能获取父容器中的
    	 WebTest webTest = (WebTest) ApplicationContextUtils.getBean("webTest2");
    	System.out.println("webTest2 :"+webTest);
    	
    	
    	WebTest webTest2 = (WebTest) ApplicationContextUtils.getBean("webTest");
    	System.out.println("webTest :"+webTest2);*/
    	
    	
    	
        String name = Optional.ofNullable(req.getSession(false))
                .map(session -> (String) session.getAttribute(NAME))
                .orElse("World");
        String greeting = String.format("Hello %s!", name);
        System.out.println("get====greeting  "+greeting);
        try (ServletOutputStream out = resp.getOutputStream()) {
            out.write(greeting.getBytes(StandardCharsets.UTF_8));
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        String name = req.getParameter(NAME);
        System.out.println("post===="+name);
        req.getSession().setAttribute(NAME, name);
    }
}

 

分享到:
评论

相关推荐

    Java中Spring获取bean方法小结

    这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...

    第一章 Spring4 简介及获取Bean

    - 博文链接:https://1151461406.iteye.com/blog/2389888,这个链接可能包含有关Spring4入门和获取Bean的具体教程。 - 在线课程:如Coursera、Udemy等平台上的Spring课程。 - 开源项目:参与开源项目,了解Spring在...

    Spring Bean创建初始化流程.docx

    在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个...Spring的IoC容器使得应用更加灵活和易于测试,因为Bean的依赖关系可以通过配置来调整,而不是硬编码在代码中。

    spring中的bean

    在实际开发中,Spring的Bean管理机制极大地提高了代码的可测试性和模块化。通过合理配置和设计Bean,可以降低组件间的耦合,使代码更易于维护和扩展。在Spring1-1这个文件中,可能包含了关于这些概念的示例代码和...

    spring创建bean简单示例

    3. **加载配置并获取Bean**: 在Java代码中,使用`ClassPathXmlApplicationContext`加载XML配置文件,并通过Bean的ID获取并使用Bean实例。 ```java ApplicationContext context = new ...

    spring依赖注入bean

    在 Java 应用中,我们可以创建一个主类来启动应用程序,并从 Spring 容器中获取 Bean 实例。例如: ```java public class MainApp { public static void main(String[] args) { ApplicationContext context = new...

    Spring在代码中获取bean的方法小结

    在非Spring管理的类中,如果该类由Spring初始化,我们可以创建一个持有ApplicationContext的成员变量,并使用`@Autowired`注解进行注入,再通过ApplicationContext获取Bean: ```java @Autowired private ...

    Spring实战之获得Bean本身的id操作示例

    今天,我们将通过一个实例形式来分析Spring获取Bean本身id的相关配置与实现技巧。 首先,让我们来看一下配置文件beans.xml: ```xml xmlns="http://www.springframework.org/schema/beans" xsi:...

    spring管理bean应用实例代码

    - `ApplicationContext`:Spring的主要容器,提供了加载配置、获取Bean、处理事件等功能。 - `BeanFactory`:基础容器,功能相对简单,但通常使用`ApplicationContext`。 9. **SpEL(Spring Expression Language...

    spring 5.2.9 07 源码分析-spring的bean工厂准备工作 测试用例

    `BeanFactory`提供了对Bean的声明式管理,包括获取Bean、配置Bean等操作。在实际应用中,我们通常使用的是`DefaultListableBeanFactory`,这是Spring实现的一个具体Bean工厂,支持大量的Bean定义。 在源码分析过程...

    Spring启动后获取所有拥有特定注解的Bean实例代码

    在Bean的生命周期中,Spring提供了多种方式来获取Bean的实例,例如通过getBean方法、通过BeanFactory获取Bean实例等。 在获取所有拥有特定注解的Bean实例代码时,需要注意的是,ApplicationContextAware接口不能...

    spring IOC反射装载bean

    首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些配置文件通常以`beans.xml`的形式存在,其中包含了Bean的名称、类名、依赖关系和其他属性。例如,一个简单的Bean定义可能如下所示: ```xml <bean id=...

    在Servlet直接获取Spring框架中的Bean.docx

    如果在Spring初始化之前尝试获取Bean,可能会抛出异常。 总之,在Servlet中直接获取Spring的Bean可以帮助简化代码,减少重复的工作,并利用Spring的依赖注入能力。然而,这种方式应该谨慎使用,因为它可能破坏了...

    Java获取Bean的几种方式.pdf

    本文主要探讨了Java获取Bean的多种方式,尤其在Spring Boot和IOC(控制反转)环境下。这些方式可以帮助开发者便捷地从Bean容器中检索和使用所需的Bean。 1. **初始化时保存ApplicationContext对象** 当应用启动时...

    Spring中关于Bean的管理的课件

    4. **Spring的应用上下文(ApplicationContext)**:ApplicationContext是Spring的主要接口之一,它提供了获取Bean、处理消息和事件等功能,是Spring应用中的主要入口点。 5. **构造注入(constructor injection)*...

    17. Spring Boot普通类调用bean【从零开始学Spring Boot】

    这是Spring提供的接口,用于获取bean和管理bean的生命周期。你可以通过实现ApplicationContextAware接口,或者直接在代码中创建ApplicationContext实例来访问bean。 5. **非Spring管理类调用bean**: 在非Spring...

    普通类调用Spring bean对象

    6. **Spring EL(Expression Language)**:在某些情况下,我们可能需要动态地获取bean,这时可以使用Spring EL。例如,在`@Value`注解中,我们可以写表达式来获取bean的属性或方法。 通过以上方式,普通类能够灵活...

    spring3零配置注解实现Bean定义

    7. 示例代码演示了如何使用@Component注解来定义一个Spring管理的Bean,并且在测试类中通过Spring的ApplicationContext来获取该Bean,验证其是否被正确注册。 8. JSR-250和JSR-330的注解虽然被Spring支持,但它们并...

    Spring实现Aware接口自定义获取bean的两种方式

    Spring Aware接口自定义获取bean的两种方式 Aware接口是Spring框架中的一种机制,通过实现Aware接口,可以获取Spring容器中的bean对象。在Spring编程中,经常需要根据bean的名称来获取相应的bean对象,这时候,...

    详解Spring中bean实例化的三种方式

    在示例中,`User`类被配置为一个Bean,通过`ClassPathXmlApplicationContext`加载配置并获取Bean实例。 2. 静态工厂创建: 当需要通过类的静态方法创建Bean实例时,可以使用这种方式。首先,我们需要一个带有静态...

Global site tag (gtag.js) - Google Analytics