Spring学习笔记——使用Java的方式配置Spring

本文介绍Spring框架中基于Java的配置方式,包括@Configuration和@Bean注解的使用,展示如何替代传统XML配置,实现依赖注入。

1Spring Framework中文官方文档1.12节 基于Java的容器配置
链接: https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/core.html#%E5%9F%BA%E4%BA%8E-java-%E7%9A%84%E5%AE%B9%E5%99%A8%E9%85%8D%E7%BD%AE
用@Configuration注解 类表示该类的主要目的是作为 Bean 定义的来源。此外,@Configuration类通过调用同一类中的其他@Bean方法来定义 Bean 间的依赖关系。最简单的@Configuration类的内容如下:

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

上面的AppConfig类等效于下面的 Spring XML:

<beans>
    <bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>

2.相关说明
①不使用Spring的xml配置,全部使用Java来做
②JavaConfig是Spring的一个子项目,在Spring4之后,它成为了一个核心功能!

3.注解配置的上下文
在这里插入图片描述4.实体类

//该注解说明这个类被Spring接管了,注册到了容器中
@Component
public class User {
    private String name;

    public String getName() {
        return name;
    }
    //属性注入值
    @Value("Vicky")
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

5.配置文件

@Configuration//这个也会被Spring容器接管,注册到容器中,因为它本来就是一个@Component
//@Configuration代表这是一个配置类,与beans.xml一样
@ComponentScan("com.kuang.pojo")
@Import(DongConfig.class)
public class VickyConfig {
    //注册一个Bean,就相当于我们之前写的一个bean标签
    //该方法的名字,相当于bean标签中的id属性
    //该方法的返回值,相当于bean标签中的class属性
    @Bean
    public User User(){
        return new User();//返回要注入到bean中的对象!
    }

}

6.测试类

public class Mytest {
    public static void main(String[] args){
        //若完全使用配置类做,只能通过AnnotationConfig上下文获取容器,通过配置类的class对象加载
        ApplicationContext context = new AnnotationConfigApplicationContext(VickyConfig.class);
        User getUser =(User)context.getBean("User");
        System.out.println(getUser.getName());
    }
}

SpringBoot中常见纯Java的配置方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值