10.1 Java的方式配置Spring
JavaConfig 是 Spring 的一个子项目。在 Spring4 之后,它 成为了一个 核心的功能,非常推荐大家去使用。因为 很灵活!!!
我们可以写一个 Appconfig
类,然后 去 配置 Spring!
SpringBoot 的一些牛逼注解。底层 其实 就是 spring 注解的大杂烩。
- 创建一个 Config 类,用
@Configuration
注解上
@ComponentScan("xxxx")
:扫描一个 包里面 要 成为 bean 的类。
@Import(xx.class)
:导入 其它的 Config 类,类似于 多人开发的时候,合并 配置文件。
@Bean
:一般 注解在 返回 新建一个对象 的方法上。这样的话,我们 就能 创建 bean 对象了。否则 无法创建呀。
@Bean("id")
:设定 这个 bean 的 id 是什么。
package top.muquanyu.config;
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.Import;
import org.springframework.lang.Nullable;
import top.muquanyu.pojo.User;
@Configuration
@ComponentScan("top.muquanyu.pojo")
@Import(Beans.class)
public class Config {
@Bean("user")
public User getUser() {
return new User();
}
}
package top.muquanyu.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class User {
@Value("muquanyu")
private String name;
public String getName() {
return name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
public void setName(String name) {
this.name = name;
}
}
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import top.muquanyu.config.Config;
import top.muquanyu.pojo.User;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
User getUser = context.getBean("user", User.class);
System.out.println(getUser.getName());
}
}
10.2 提前体验一下 springboot
@SpringBootApplication
看下这个 注解的底层。
你会发现 基本上全是 依赖于 原生态 注解和 spring的注解 进一步 二次开发出来的。