Spring注解(赋值相关)

上面是与生命周期有关的内容,下面是属性赋值相关的:

@Configuration
public class ProperTyValueConfig {
    
    @Bean
    public Person person() {
        return new Person();
    }
}

测试:

public class test {
    
    private void printBeans(AnnotationConfigApplicationContext applicationContext) {
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for(String name : beanDefinitionNames) {
            System.out.println(name);
        }
        Object p = applicationContext.getBean("person");
        System.out.println(p);
    }
    
    @Test 
    public void test01(){  
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ProperTyValueConfig.class);
        System.out.println("容器创建完成");
        printBeans(applicationContext);
        //关闭容器
        applicationContext.close();
    }
    
} 

看看容器有哪些Bean

除了容器自带的,还有就是我们配置的person,还没有赋值哦

 xml:

 <baen  id = "person"  class = "com.toov5.Person"> 

   <property name = "age" value= 12> </property>

  <property name="name" value = "jack"> </property>

扫描二维码关注公众号,回复: 5794784 查看本文章

</bean>

 注解:

  @Value()   boolean 

  Spel  基本数值都可以写 #{}

  ${} 取出配置文件中的值  在运行环境中的变量值

Bean类及其赋值:

package com.toov5.Bean;

import org.springframework.beans.factory.annotation.Value;

public class Person {
  
 @Value("#{20-1}")
  int age;

 @Value("MaYun")
  String name;
 
public Person() {
    // TODO Auto-generated constructor stub
}

public Person(int age, String name) {
    super();
    this.age = age;
    this.name = name;
}

@Override
public String toString() {
    return "Person [age=" + age + ", name=" + name + "]";
}
  
}

注意赋值 @Value 类型要匹配

下面介绍使用properties文件的:

   如果用xml形式的读取:

   xml中需要有命名空间:  <context: property-placeholder location=“xxxxxx/xxx” />    用其导入外部的配置文件

  

  如果用注解的方式读取:

   Bean类:

   

public class Person {
  
 @Value("#{20-1}")
  int age;

 @Value("MaYun")
  String name;
 
 @Value("${person.addr}")
  String addr;
 
public Person() {
    // TODO Auto-generated constructor stub
}

public Person(int age, String name) {
    super();
    this.age = age;
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAddr() {
    return addr;
}

public void setAddr(String addr) {
    this.addr = addr;
}

@Override
public String toString() {
    return "Person [age=" + age + ", name=" + name + ", addr=" + addr + "]";
}
  
}

properties:

  

  person.addr=beijing

 测试:

  

public class test {
    
    private void printBeans(AnnotationConfigApplicationContext applicationContext) {
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for(String name : beanDefinitionNames) {
            System.out.println(name);
        }
        Object p = applicationContext.getBean("person");
        System.out.println(p);
    }
    
    @Test 
    public void test01(){  
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ProperTyValueConfig.class);
        System.out.println("容器创建完成");
        printBeans(applicationContext);
        //关闭容器
        applicationContext.close();
    }
    
} 

 一旦properties文件被加载,还可以使用如下方式获取:

  

public class test {
    
    private void printBeans(AnnotationConfigApplicationContext applicationContext) {
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for(String name : beanDefinitionNames) {
            System.out.println(name);
        }
        Object p = applicationContext.getBean("person");
        System.out.println(p);
        //运行时环境变量
        ConfigurableEnvironment environment = applicationContext.getEnvironment();
        String property = environment.getProperty("person.addr");
        System.out.println(property);
        
    }
    
    @Test 
    public void test01(){  
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ProperTyValueConfig.class);
        System.out.println("容器创建完成");
        printBeans(applicationContext);
        //关闭容器
        applicationContext.close();
    }
    
} 

  

猜你喜欢

转载自www.cnblogs.com/toov5/p/10661810.html