@EnableAutoConfiguration
来源:互联网 发布:linux如何退出top 编辑:程序博客网 时间:2024/05/16 18:40
http://blog.csdn.net/kmhysoft/article/details/71056027
spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置。
一、首先,需要xml中进行少量的配置来启动Java配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
- <context:component-scan base-package="SpringStudy.Model">
- </context:component-scan>
- </beans>
二、定义一个配置类
用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean。
代码如下:
- package SpringStudy;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import SpringStudy.Model.Counter;
- import SpringStudy.Model.Piano;
- @Configuration
- public class SpringConfig {
- @Bean
- public Piano piano(){
- return new Piano();
- }
- @Bean(name = "counter")
- public Counter counter(){
- return new Counter(12,"Shake it Off",piano());
- }
- }
三、基础类代码
Counter:
- package SpringStudy.Model;
- public class Counter {
- public Counter() {
- }
- public Counter(double multiplier, String song,Instrument instrument) {
- this.multiplier = multiplier;
- this.song = song;
- this.instrument=instrument;
- }
- private double multiplier;
- private String song;
- @Resource
- private Instrument instrument;
- public double getMultiplier() {
- return multiplier;
- }
- public void setMultiplier(double multiplier) {
- this.multiplier = multiplier;
- }
- public String getSong() {
- return song;
- }
- public void setSong(String song) {
- this.song = song;
- }
- public Instrument getInstrument() {
- return instrument;
- }
- public void setInstrument(Instrument instrument) {
- this.instrument = instrument;
- }
- }
Piano类
- package SpringStudy.Model;
- public class Piano {
- private String name="Piano";
- private String sound;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getSound() {
- return sound;
- }
- public void setSound(String sound) {
- this.sound = sound;
- }
- }
四、调用测试类
- package webMyBatis;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.annotation.AnnotationConfigApplicationContext;
- import SpringStudy.Model.Counter;
- public class SpringTest {
- public static void main(String[] args) {
- //ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 读取bean.xml中的内容
- ApplicationContext annotationContext = new AnnotationConfigApplicationContext("SpringStudy");
- Counter c = annotationContext.getBean("counter", Counter.class);// 创建bean的引用对象
- System.out.println(c.getMultiplier());
- System.out.println(c.isEquals());
- System.out.println(c.getSong());
- System.out.println(c.getInstrument().getName());
- }
- }
注意:如果是在xml中配置beans和bean的话,或者使用自动扫描调用的话,代码为
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 读取bean.xml中的内容
Counter c = ctx.getBean("counter", Counter.class);// 创建bean的引用对象
五、运行结果
12.0
false
Shake it Off
Piano
阅读全文
0 0
- @EnableAutoConfiguration
- @EnableAutoConfiguration
- @EnableAutoConfiguration注解
- SpringBoot @EnableAutoConfiguration原理
- 深入SpringBoot:自定义EnableAutoConfiguration
- @EnableAutoConfiguration和@SpringbootApplication注解
- Spring Java Configuration之@EnableAutoConfiguration
- @EnableWebMvc 与 @EnableAutoConfiguration 的关系
- SpringBoot @EnableAutoConfiguration非详细解读
- EnableAutoConfiguration注解的工作原理
- SpringBoot之@EnableAutoConfiguration原理及自定义扩展
- spring boot @EnableAutoConfiguration 导致CNF问题
- SpringBoot之@EnableAutoConfiguration原理及自定义扩展
- Spring Boot的@SpringBootApplication、@EnableAutoConfiguration、@ComponentScan注解
- SpringBootApplication等价于 @Configuration @EnableAutoConfiguration @ComponentScan
- @SpringBootApplication 相当于 @Configuration、@EnableAutoConfiguration 、 @ComponentScan 三个的作用
- SpringBoot学习笔记(三):EnableAutoConfiguration作用和机制
- Spring Boot自动配置(Auto-Configuration),@EnableAutoConfiguration,Spring Beans和依赖注入
- 推荐系统入门必读的经典paper
- 送给SDUTACM暑假集训同学们的一些话
- 库与运行库
- 这六个小细节SEO网站优化需要注意
- 图论总结(7)并查集
- @EnableAutoConfiguration
- script在Html中的摆放位置
- 分组对称加密模式:ECB/CBC/CFB/OFB
- 将数据从文件中读出并排序
- Eclipse使用:从git克隆maven项目
- vue.js import/require数组后computed监听失败
- 04.assetbundle下载
- ROC曲线知识
- (上传文件错误)java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory