Loading

Spring Java的配置方法

1. 使用java的方式配置Spring

实体类User


// 这里的这个注解的意思,就是说明这个类被Spring托管了,注册到了容器中
@Controller
public class User {
    // 属性的注入
    @Value("cnfalltime")
    private String name;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

配置类
@Bean 基础声明
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。

SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。
更多关于@Bean注解的说明请看Spring的注解 @Bean用法

// @Configuration本质上也是一个Controller,也会被spring托管,注册到容器中
// @Configuration表示这是一个配置类,和之前的beans.xml的功能一样的
 
@Configuration
@ComponentScan("com.kuang.pojo")        // @ComponentScan表示组件的扫描,在此例中不使用扫描也可以,只不过是显式定义
@Import(MyConfig1.class)                 // 通过import导入其他的配置类
public class MyConfig {
    // @Bean 表示注册一个bean
    // 方法的名字即是bean中的id
    // 方法的返回值就是bean中的class
	//@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean
    @Bean
    public User getUser(){
        return new User();      // return就是返回要注入到bean中的对象
    }
 
}

测试类


public class MyTest {
    @Test
    public void test(){
        // 如果使用了java配置类的方式来注册bean,
        // 只能通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载!
        ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        // 获取通过配置类中的方法getUser方法来获得的User对象
        User user = (User) context.getBean("getUser");
        System.out.println(user.toString());
    }
}
  • 这种纯java配置方式,在SpringBoot中随处可见!
@Component 

这里这个注解的意思就是说明这个类被Spring接管了,注册到了容器中

@Configuration本质上还是一个@Component,代表这个一个配置类和bean.xml一样

@ComponentScan("com.kuang.pojo") // @ComponentScan表示组件的扫描 @Import(MyConfig1.class) // 通过import导入其他的配置类

posted @ 2022-03-27 21:51  Cn_FallTime  阅读(97)  评论(0编辑  收藏  举报