使用Java方式配置Spring

        通过Java的方式编写一个配置类(用于配置的类,在类上加@Configuration),可以做到完全脱离XML配置文件。主要有两种实现方式:

  • @Configuration+@Bean
    • User类:可以通过注解为属性赋值
      public class User {
      
          @Value("YuJing")
          private String name;
          @Autowired
          private Cat cat;
      
          public String getName() {
              return name;
          }
      
      //    public void setName(String name) {
      //        this.name = name;
      //    }
      
      
          @Override
          public String toString() {
              return "User{" +
                      "name='" + name + '\'' +
                      ", cat=" + cat.getAge() +
                      '}';
          }
      }
    • Cat类
      public class Cat {
      
          @Value("2")
          private String age;
      
          public String getAge() {
              return age;
          }
      }
    • 配置类:@Configuration---配置文件的约束;@Bean---配置文件中显式配置的<bean/>。这种方式要通过方法名获取相应的bean,即context.getBean("getUser")。
      @Configuration
      //@ComponentScan("com.jing")
      public class AppConfig {
      
          @Bean
          public User getUser(){
              return new User();
          }
      
          @Bean
          public Cat getCat(){
              return new Cat();
          }
      }
  • @Configuration+@ComponentScan("com.jing")+@Component
    • User类:@Component,通过注解的方式配置bean。使用注解的前提下是有扫描器。
      @Component
      public class User {
      
          @Value("YuJing")
          private String name;
          @Autowired
          private Cat cat;
      
          public String getName() {
              return name;
          }
      
      //    public void setName(String name) {
      //        this.name = name;
      //    }
      
      
          @Override
          public String toString() {
              return "User{" +
                      "name='" + name + '\'' +
                      ", cat=" + cat.getAge() +
                      '}';
          }
      }
    • Cat类:@Component,通过注解的方式配置bean。
      @Component
      public class Cat {
      
          @Value("2")
          private String age;
      
          public String getAge() {
              return age;
          }
      }
    • 配置类:@ComponentScan相当于配置文件中的<context:component-scan base-package="com.jing"/>,用于扫描并注册所有包中定义的bean。
      @Configuration
      @ComponentScan("com.jing")
      public class AppConfig {
      
      //    @Bean
      //    public User getUser(){
      //        return new User();
      //    }
      //
      //    @Bean
      //    public Cat getCat(){
      //        return new Cat();
      //    }
      }

      总结:配置bean有三种方式:配置文件、注解@Component、或者配置类中的@Bean,无论使用哪种方式,java中所有的类都需要配置成IOC容易中的bean,交由IOC管理。前两种方法常用来配置本应用以内的类;而第三种方式常用来配置应用以外的类,比如jdbc连接,这种我们无法接触到源码,即无法修改源程序的配置文件以及在源码的类上直接加注解。

总结 

  • 配置bean有三种方式: 
    • 配置文件
    • 类上加注解@Component
    • 配置类中的通过@Bean注解
  • 无论哪种方式,我们的目标是将使用到的类注册到IOC容器当中,交由IOC管理。
  • 前两种方式常用来配置本应用以内的类,即我们可以访问源代码,并可以直接修改(修改配置文件或者加注解)
  • 第三种方式的用途:配置应用以外的类,比如jdbc连接。这种我们无法接触到源码,即无法对其进行修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值