使用 Java 方式配置 Spring
写个实体类:
@Component 表示这个类被 Spring 接管了,注册到了容器中
            
            
              java
              
              
            
          
          package com.demo.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component //这个类被Spring接管了,注册到了容器中
public class User {
    private String name;
    public String getName() {
        return name;
    }
    @Value("张三") //属性值注入
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}
        写个配置类:
@Configuration 会被 Spring 容器托管,注册到容器中,因为他本来就是一个 @Component
@Configuration 代表这是一个**配置类,**和 beans.xml 一样
再写个方法:
@Bean:
注册一个 bean,相当于 bean 标签
这个方法的名字, 相当于 bean 标签中的 id 属性
这个方法的返回值, 相当于 bean 标签中的class 属性
            
            
              java
              
              
            
          
          package com.demo.config;
import com.demo.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//@Configuration会被Spring容器托管,注册到容器中,因为他本来就是一个@Component
//@Configuration代表这是一个配置类,和beans.xml一样
@Configuration
public class Config {
    /*
    注册一个bean,相当于bean标签
    这个方法的名字,相当于bean标签中的id属性
    这个方法的返回值,相当于bean标签中的class属性
     */
    @Bean
    public User getUser(){
        return new User(); //return返回要注入到bean的对象
    }
}
        扫描:@ComponentScans("xx")
导入其他类:@Import(xx.class)
写个测试类:
如果完全使用了配置类方式去做,
只能通过 AnnotationConfig上下文来获取容器,
通过配置类的 class 对象加载
            
            
              java
              
              
            
          
          import com.demo.config.Config;
import com.demo.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
    public static void main(String[] args) {
        //如果完全使用了配置类方式去做,只能通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        User getUser = (User) context.getBean("getUser");
        System.out.println(getUser.getName());
    }
}