Spring 学习(五)JavaConfig 实现配置

本文介绍了如何使用JavaConfig在Spring框架中实现配置,包括实体类的@Component注解、配置类@Configuration扫描包及@Bean方法的使用,以及在测试类中通过ApplicationContext获取配置对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用 JavaConfig 实现配置

  • JavaConfig 是 Spring 项目的一个子项目,Spring 4 后成为核心功能。

  • 注意:

    • 如果开启包扫描,加载配置类以后就可以通过反射拿到配置类中的对象了。
    • @Bean 只写在方法上,返回的是一个对象,但一般不获取已经在容器中的对象。
    • @Bean 可以用于通过方法获取数据库连接池 Connection 这种对象。
  • 实现配置案例

    • 实体类

      /**
       * TODO
       * 用户类
       * @author why
       * @since 2021/7/5 15:51
       */
      // 说明这个实体类注册到 Spring 中了
      @Component
      public class User {
      
          // 为属性注入值
          @Value("why")
          public String name;
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getName() {
              return name;
          }
      
          // 重载
          @Override
          public String toString() {
              return "User{" +
                      "name='" + name + '\'' +
                      '}';
          }
      }
      
    • 配置类

      /**
       * TODO
       * 配置类
       * @author why
       * @since 2021/7/5 16:14
       */
      // 本身就是一个 @Component,说明此类也注册到 Spring 中了
      // 相当于 beans.xml,说明此类是一个配置类
      @Configuration
      // 扫描包,使此包内的所有注解有效
      @ComponentScan("com.why.pojo")
      // 引入其他配置
      @Import(WhyConfig.class)
      public class MyConfig {
      
          // 相当于 XML 文件中的 <bean/>,方法名是 id 属性,返回值是 class 属性
          @Bean
          public User getUser(){
              return new User();  // 返回要注入到 bean 的对象
          }
      }
      
    • 测试类

      /**
       * TODO
       * 测试类
       * @author why
       * @since 2021/7/5 16:28
       */
      public class MyTest {
          public static void main(String[] args) {
              // 通过注解获得上下文
              ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
              User user = (User) context.getBean("getUser");
              System.out.println(user.getName());
          }
      }
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值