Spring注解开发

Spring注解开发

1.使用了配置文件
  1. 开启注解扫描

    在xml配置文件中添加如下代码

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

    base-package: 定义扫描路径

    路径下的所有组件都将被注册为bean对象, 存在于IOC容器中

  2. 组件注解

    添加有如下任意注解的对象都将被注册为bean对象, 存在于容器中

    • @Component

    • @Repository

    • @Service

    • @Controller

      @Component
      public class TomCat {
          private String name;
          private String gender;
          private Integer age;
      }
      
  3. 其他注解

    • @Scope

      用于设置bean的作用域

      @Component
      @Scope("prototype")
      public class TomCat {
          private String name;
          private String gender;
          private Integer age;
      }
      
    • @Value

      用于注入属性值

      @Component
      public class TomCat {
          @Value("Tom猫")
          private String name;
          @Value("男")
          private String gender;
          @Value("20")
          private Integer age;
      }
      
2.没有使用配置文件

注解

  • @Configuration

    用于修饰类, 代表这是一个spring配置类, 同时这个配置类也会被注册为一个组件, 存在于IOC容器中

    @Configuration
    public class MyConfig {
    }
    
  • @Import

    用于修饰类, 用于导入别的配置类

    @Configuration
    @Import(MyConfig2.class)
    public class MyConfig {
    }
    
  • @ComponentScan

    用于修饰类, 开启注解扫描, 指定扫描路径, 路径下的所有组件都会被注册为bean对象, 存在于IOC容器中

    @Configuration
    @ComponentScan("com.ml.pojo")
    public class MyConfig {
    }
    
  • @Bean

    被@Bean修饰的方法会返回一个bean对象, 并且存在于IOC容器中, 对象的名字就是方法名

    @Configuration
    public class MyConfig {
        @Bean
        public User getUser(){
            return new User();
        }
    }
    

在没有使用配置文件的情况如何获取bean对象 ?

使用AnnotationConfigApplicationContext类(ApplicationContext的子类), 传入配置类作为参数

@Test
public void test08(){
    ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
    Jim jim = context.getBean("jim", Jim.class);
    System.out.println(jim);
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值