• 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

  • 相关阅读:
    从淘宝数据结构来看电子商务中商品属性设计
    YY淘宝商品数据库设计
    ElasticSearch-聚合bucket学习
    ElasticSearch-聚合bucket
    Elasticsearch(9) --- 聚合查询(Bucket聚合)
    Elasticsearch-多字段搜索(Multifield Search)和提高精确度
    五、设备管理与文件系统
    六、YUM仓库
    四、查找命令
    二、用户权限
  • 原文地址:https://www.cnblogs.com/davidwang456/p/6019610.html
Copyright © 2020-2023  润新知