spring boot: 一般註入說明(二)
阿新 • • 發佈:2017-12-26
csharp pla 字符 control epo ace 其他 imp rac
實例:
DemoService :文件:
package ch2.el; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; //註入:當前類是spring管理的一個bean //等效(可根據需要選擇):@Service=@Component=@Repository=@Controller @Service public class DemoService { //註入普通字符串 @Value("其他類的屬性") private String another; public String getAnother() { return another; } public void setAnother(String another) { this.another = another; } }
test.txt文件:
wwwweeebbfddfd
test.propeties文件:
book.author=wangyunfei book.name=spring boot
ResourceConfig文件:
package ch2.el; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; //聲明當前類是一個配置類 @Configuration //自動掃描ch2.el包下的所有@Service,@Component,@Repository和@Controller註冊為Bean; @ComponentScan("ch2.el") public class ResourceConfig { }
Eiconfig文件:
package ch2.el; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.core.io.Resource; //聲明當前類是一個配置類 @Configuration //自動掃描包下的所有@Service,@Component,@Repository和@Controller註冊為Bean; @ComponentScan("ch2.el") //註入配置文件 @PropertySource("classpath:ch2/el/test.propeties") public class ElConfig { //將FunctionService類的實體Bean註入到UseFunctionService中,讓UseFunctionService擁有FunctionService的功能 //等效註解: @Autowire=@Inject=@Resource //註入文字 @Value("I love you") private String normal; //註入操作系統屬性 @Value("#{systemProperties[‘os.name‘]}") private String osName; //註入表達式結果 @Value("#{ T(java.lang.Math).random() * 100.0 }") private double randomNumber; //註入其他Bean屬性 @Value("#{demoService.another}") private String fromAnother; //註入文件資源 @Value("classpath:ch2/el/test.txt") private Resource testFile; //註入網址資源 @Value("http://www.baidu.com") private Resource testUrl; //註入配置文件 @Value("${book.name}") private String bookName; //註入配置文件 @Autowired private Environment environment; //註入配置文件 @Bean public static PropertySourcesPlaceholderConfigurer propertyConfigure() { return new PropertySourcesPlaceholderConfigurer(); } public void outputResource() { try { System.out.println(normal); System.out.println(osName); System.out.println(randomNumber); System.out.println(fromAnother); System.out.println(testFile); System.out.println(testUrl); System.out.println(IOUtils.toString(testUrl.getInputStream())); System.out.println(bookName); System.out.println(environment.getProperty("book.author")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Main文件:
package ch2.el; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ResourceConfig.class); ElConfig resourceElconfig = context.getBean(ElConfig.class); resourceElconfig.outputResource(); context.close(); } }
spring boot: 一般註入說明(二)