Spring-Java配置版本

2023-12-15 11:58:09

依赖

<!--spring-context涵盖了aop,beans,core,expression-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.18</version>
</dependency>

实体类

// @Component:注册到Spring容器中,@Controller、@Repository、@Service功能相同
@Component
// 设置作用域:单例模式
@Scope("singleton")
public class User {
    // @Autowired:注解方式自动注入,required:为true不能为空,为false可以为空
    // @Autowired(required = false)
    // @Qualifier:配合@Autowired使用,指定一个bean注入
    // @Qualifier(value = "user1")
    // @Resource会根据属性名称或属性类型匹配合适的bean
    // 如果名称、类型都不是唯一的可以指定一个bean
    // @Resource(name = "user2")
    private Integer id;
    // @Value赋默认值
    @Value("zhangsan")
    private String name;
    private Integer age;
}

配置类

// @Configuration声明一个配置类,相当于一个xml配置文件
@Configuration
// 扫描包
@ComponentScan("org.example.pojo")
// 引入其他配置类:@Import(MyConfig2.class)
public class MyConfig {
    // 注册一个bean,方法名就是bean的id,返回值类型就是bean的class
    @Bean
    public User getUser(){
        // 返回一个bean对象
        return new User();
    }
}

测试类

public class ConfigTest {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        System.out.println(context.getBean("getUser"));
    }
}

文章来源:https://blog.csdn.net/h_e_l_l_o_______/article/details/134938991
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。