【关于bean注入的注解配置和java配置方式如下:】
1、如果配置类加上注解@Configuration,@ComponentScan(“包路径”),则对应实体类要加入@service等注解注入bean。
2、如果配置类加上注解@Configuration,没有@ComponentScan(“包路径”)注解,则该配置类里就要在返回实体类的方法上使用@Bean注解来注入bean。
【读取***.properties文件属性的方式:】
属性文件test.properties内容
title=good girl
name=hedy
1、导入配置文件读取
package com.abc.commons;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.Environment;
/*
* author : ajing
* date : 2018/4/2 16:30
* */
@Configuration
@ComponentScan("com.abc")
@PropertySource("classpath:test.properties") //属性注入除了使用@Value注解还可以使用下面的Environment获取,但都必须导入配置文件地址
public class PropertyConfig {
@Value("${title}")
private String title;
@Value("${name}")
private String name;
@Value("#{T(java.lang.Math).random()*100.0}")
private double randNumber; //这个使用environment不好使
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigure(){
return new PropertySourcesPlaceholderConfigurer();
}
public void getResource(){
System.out.println(title);
System.out.println(name);
System.out.println(randNumber);
}
public static void main(String[] args) {
AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(ResourceConfig.class);
PropertyConfig propertyConfig = context.getBean(PropertyConfig.class);
propertyConfig.getResource();
}
2、通过注入Environment获取属性
package com.abc.commons;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.Environment;
/*
* author : ajing
* date : 2018/4/2 16:30
* */
@Configuration
@ComponentScan("com.abc")
@PropertySource("classpath:test.properties") //属性注入除了使用@Value注解还可以使用下面的Environment获取,但都必须导入配置文件地址
public class PropertyConfig {
@Autowired
private Environment environment;
public void getResource(){
System.out.println(environment.getProperty("title"));
System.out.println(environment.getProperty("name"));
System.out.println(environment.getProperty("randNumber"));
}
public static void main(String[] args) {
AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(ResourceConfig.class);
PropertyConfig propertyConfig = context.getBean(PropertyConfig.class);
propertyConfig.getResource();
}
}