Spring 使用配置类 代 xml 配置的方式

Spring 中使用JavaConfig配置Spring

笔记目的:
Spring的知识回顾,有些忘记了。
温故而知新为SpringBoot打一下基础

  • User
// @Component 的意思是这个类被Spring 接管了,注册到了容器中
@Component
public class User {

    @Value("Tom")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}
  • javaConfig 配置类第一种使用
@Configuration
@ComponentScan("com.codebar.pojo")
public class javaConfig {


    public User getUser(){
        return new User();
    }

}
@Configuration
// 这也是一个Spring容器托管,注册到容器中,因为他本身就是一个@Component
// @Configuration 代表这是一个配置类,等价于.xml (我是配置文件,暂且当作一个标识,标识自己是配置文件)
// 等价于 <beans>   </beans>

@ComponentScan(“com.codebar.pojo”) 等价于xml文件中的

作用:扫描包

和@Component 联用,就会扫描到指定位置的哪个类

<context:component-scan base-package="com.codebear.pojo"/>

  • javaConfig 的第二种使用
@Configuration
public class javaConfig {

    @Bean
    public User getUser(){
        return new User(); // 就是返回注册到bean中的对象
    }

}
@Bean 
注册一个bean,就相当于 xml 里的bean标签
这个方法的名字就相当于bean标签中的 id的属性
这个方法的返回值相当于bean标签中的 class属性
<!--xlm 参照-->
<!--bean就是java对象 , 由Spring创建和管理-->
    <bean id="hello" class="com.codebear.pojo.Hello">
        <property name="str" value="Spring"/>
    </bean>
这里 使用@Bean 和 @Configuration 注解 
那么在前面中的User类中  就不需要使用@Component注解

  • 测试类
public class MyTest03 {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(javaConfig.class);
        User user = context.getBean("getUser",User.class);  // 这里的名字就是Bean的名字  可以@Bean("user") 这里的名字就是user了

        System.out.println(user.getName());
    }
}
 ApplicationContext context = new AnnotationConfigApplicationContext(javaConfig.class);
// 完全使用配置类的方法的话,只能通过AnnotationConfig 上下文来获取容器,通过配置类的class对象去加载

  • 补充:

    配置多个Bean (导入其它配置)

  // 编写一个配置类
  @Configuration  //代表这是一个配置类
  public class Config2 {
  }
@Configuration
@Import(Config2.class)  //使用@import导入合并其他配置类,类似于配置文件中的 inculde 标签
public class Config {

   @Bean
   public User getUser(){
       return new User();
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值