前言:
最初的sprng1.x开始,spring一直使用的是xml配置的形式。而从spring2.x因为jdk5的发布也引入了注解的形式
Java代码类配置形式则是Spring3.x出现的功能。
springboot的配置形式多数使用 是java代码类配置方式,这也是官方推荐的形式。
什么Java代码类的配置呢?在Spring中通过在类上方添加注解@Configuration,就能告知Spring这是一个注解类,而这个类的就相当于一个配置文件
Java代码类配置形式则是Spring3.x出现的功能。
什么Java代码类的配置呢?在Spring中通过在类上方添加注解@Configuration,就能告知Spring这是一个注解类,而这个类的就相当于一个配置文件
Java Configuration形式入门:
在此之前我们来接一下Java配置的基本注解:
Spring的Java配置方式是通过 @Configuration和 @Bean 这两个注解实现的:
1、@Configuration 作用于类上,相当于一个xml配置文件;
2、@Bean 作用于方法上,相当于xml配置中的
快速入门案例:
目录结构
│-pom.xml
src
├─main
│ ├─java
│ │ └─com
│ │ └─lifeibai
│ │ ├─conf
│ │ │ BeanConfig.java ---Java配置文件类
│ │ │
│ │ └─pojo
│ │ User.java ---pojo类
│ │
│ └─resources
└─test
└─java
└─com
└─lifeibai
└─test
MyTest.java ---简单测试文件
BeanConfig.java
package com.lifeibai.conf;
import com.lifeibai.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//声明这是一个配置类
@Configuration
public class BeanConfig {
//声明这是一个bean,默认的id是方法名称
@Bean
public User user(){
return new User("小明","男",18);
}
}
User.java
public class User {
private String name;
private String sex;
private Integer age;
public User(String name , String sex , Integer age){
this.name = name;
this.sex = sex;
this.age = age;
}
...
}
MyTest.java
package com.lifeibai.test;
import com.lifeibai.pojo.User;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
@Test
public void test01(){
//通过扫描包的方式扫描所有的javaconfig配置类
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.lifeibai.conf");
User user = (User) context.getBean("user");
System.out.println(user);
}
}
//以上运行结果
User{name='小明', sex='男', age=18}
Process finished with exit code 0
BeanConfig.java
package com.lifeibai.conf;
import com.lifeibai.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//声明这是一个配置类
@Configuration
public class BeanConfig {
//声明这是一个bean,默认的id是方法名称
@Bean
public User user(){
return new User("小明","男",18);
}
}
MyTest.java
package com.lifeibai.test;
import com.lifeibai.pojo.User;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
@Test
public void test01(){
//通过扫描包的方式扫描所有的javaconfig配置类
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.lifeibai.conf");
User user = (User) context.getBean("user");
System.out.println(user);
}
}
//以上运行结果
User{name='小明', sex='男', age=18}
Process finished with exit code 0
文章如有错误,请您一定指出,感谢之至!
如果你有不同的见解,欢迎留言,或者加我QQ986320270
图片可能来源于网络,如有侵权请告知。
最后:关注一下呗
如果你有不同的见解,欢迎留言,或者加我QQ986320270
最后:关注一下呗
长按二维码识别关注