• 盘点获得spring上下文的几种流行方式


    一 前言

    知识追寻者打算重温spring,以后可能每周会发一篇吧,有空就搞搞;

    知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)

    二 获取上下文的几种方式

    • AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
    • AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。
    • ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义。
    • FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
    • XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义

    2.1 准备工作

    被单实体

    public class Sheet {
    
        // 颜色
        private String color;
        // 长度
        private String length;
        // 省略 set get
    }    
    

    sheet.xml 里面注入了Bean Sheet, 并且默认初始化 color值为red;

    <?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="sheet" class="com.zszxz.bean.Sheet">
            <property name="color" value="pink"></property>
        </bean>
    
    
    </beans>
    

    2.2FileSystemXmlapplicationcontext 获取上下文

    FileSystemXmlApplicationContext 构造器参数中需要指定sheet.xml具体文件系统路径;获得上下文之后再通过getBean方法获取Bean Sheet; 拿到对象后使用getColor 方法打印颜色,为pink;

        public static void main(String[] args) {
            // xml路径
            String path = "C:\java\workspaceforresource\study-spring\obtain-bean-way\src\main\resources\sheet.xml";
            // 从文件系统中获取上下文
            ApplicationContext applicationContext = new FileSystemXmlApplicationContext(path);
            // 获取bean
            Sheet sheet = (Sheet) applicationContext.getBean("sheet");
            // pink
            System.out.println(sheet.getColor());
        }
    

    2.3ClassPathXmlApplicationContext获取上下文

    ClassPathXmlApplicationContext 传入参数是类路径下sheet.xml的路径

        public static void main(String[] args) {
            // 获取上下文
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("sheet.xml");
            // 获得实例
            Sheet sheet = (Sheet) applicationContext.getBean("sheet");
            // pink
            System.out.println(sheet.getColor());
        }
    

    2.4AnnotationConfigApplicationContext获取上下文

    AnnotationConfigApplicationContext 获取上下文,是通过java配置的方式获取上下文;知识追寻者这边需要进行java配置,内容如下,等同于之前的sheet.xml

    /**
     * @Author lsc
     * <p> sheet配置类等同于sheet.xml</p>
     */
    @Configuration
    public class SeetConfig {
    
        // 往配置类中注入Bean
        @Bean
        public Sheet sheet(){
            // 创建对象
            Sheet sheet = new Sheet();
            // 设置属性
            sheet.setColor("pink");
            return sheet;
        }
    }
    

    获取方式如下,传入AnnotationConfigApplicationContext 参数是SeetConfig.class

        public static void main(String[] args) {
            // 获取上下文
            ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SeetConfig.class);
            // 获得实例
            Sheet sheet = (Sheet) applicationContext.getBean("sheet");
            // pink
            System.out.println(sheet.getColor());
        }
    
  • 相关阅读:
    VB连接ORACAL过程
    【EXCEL】字段是否存在的查询
    ASP.NET中插入FLASH[学来得]
    做一个健康的的程序员
    SQL语法规范——Insert语句
    WEBBENCH测试网站的负载工具
    常用简易JavaScript函数(转)
    WEB服务器性能/压力测试工具HTTP_LOAD、WEBBENCH、AB、SIEGE使用教程
    Linux服务器监控SHELL脚本(自动发邮件)(转)
    空间页面CSS说明
  • 原文地址:https://www.cnblogs.com/zszxz/p/12679039.html
Copyright © 2020-2023  润新知