zoukankan      html  css  js  c++  java
  • spring @import和@importResource

    @ImportResource in spring imports application xml in configuration file which is using @Configuration. All the beans and other properties defined in application xml can be imported. @ImportResource helps when we are moving our application from old style of defining bean in xml to modern way of defining bean in java file with the help of @Configuration.

     In the below example we have one bean defined in xml and one bean defined in java file. We will import the xml with help of @ImportResource and will fetch both beans. 
    app-conf.xml

    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
      xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
         
        <bean id="subscription" class="com.concretepage.Subscription">
            <property name="name" value="Subscription"/>
            <property name="type" value="Weekly"/>
        </bean>
    </beans>

    AppConfig.java

    package com.concretepage;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.ImportResource;
    @Configuration
    @ImportResource("classpath:/app-conf.xml")
    public class AppConfig  {
        @Bean(name="entitlement")
        public Entitlement entitlement(){
            Entitlement ent= new Entitlement();
            ent.setName("Entitlement");
            ent.setTime(20);
            return ent;
        }
    }

    Entitlement.java

    package com.concretepage;
    public class Entitlement {
        private String name;
        private int time;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getTime() {
            return time;
        }
        public void setTime(int time) {
            this.time = time;
        }
    } 

    Subscription.java

    package com.concretepage;
    public class Subscription {
        private String name;
        private String type;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }    
    } 

    AppTest.java

    package com.concretepage;
    import java.sql.SQLException;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    public class AppTest {
        public static void main(String[] args) throws SQLException {
            AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
            ctx.register(AppConfig.class);
            ctx.refresh();
            Entitlement ent= (Entitlement)ctx.getBean("entitlement");
                System.out.println(ent.getName());        
                System.out.println(ent.getTime());
            Subscription sub= (Subscription)ctx.getBean("subscription");
                System.out.println(sub.getName());        
                System.out.println(sub.getType());
        }
    } 

    Output

    Entitlement
    20
    Subscription
    Weekly

    参考文献:

    【1】http://www.concretepage.com/spring/example_importresource_spring

  • 相关阅读:
    记录一次.Net框架Bug发现和提交过程:.Net Framework和.Net Core均受影响
    浅谈 Angular 项目实战
    Angular CLI 升级 6.0 之后遇到的问题
    构建具有用户身份认证的 Ionic 应用
    关于 Angular 跨域请求携带 Cookie 的问题
    使用 ng build 构建后资源地址引用错误的问题
    React 系列教程 1:实现 Animate.css 官网效果
    如何在已有的 Web 应用中使用 ReactJS
    关于浏览器后退操作与页面缓存问题
    三阶魔方公式速记
  • 原文地址:https://www.cnblogs.com/davidwang456/p/6019610.html
Copyright © 2011-2022 走看看