非常重要】 组件扫描(Component-Scan)

  • <bean>
  • cn.tedu.spring.dao
  • package,要想自动管理bean,那么还需要配置注解

注解

  • @Component注解,可以是的spring知道这个类是一个组件,需要进行管理,所以如过某个类需要被Spring管理,应该将这个类放在被扫描的包中,并且添加注解

前提

  • 一定要是在开启组件扫描的包下使用注解,否则将不会扫描到配置的注解

常用注解

  • 可以混用,暂时这几个注解没有差异,完全功能相同,但是我们还是要根据规则使用
  • @Component : 通用注解
  • @Service : 用于对业务逻辑类的注解(Service层)
  • @Controller : 用于对控制器类的注解
  • @Repository :用于对持久层处理类的注解(Dao层)
  • @Named :通用注解(不用)
  • @Service

其他注解

@Scope

  • 表示非单例,默认是单例

@Lazy

  • 用于设置成懒加载
  • 在类的声明语句上方添加
  • 前面之前已经说过,在创建Bean的时候默认使用的是单例模式下的饿汉式的创建,即是在spring配置文件加载的时候创建

@PostConstruct

  • 将方法设置为生命周期的初始化方法
  • 设置初始化方法,直接在初始化方法的声明语句中添加即可
    
    @PostConstruct   
    {
        System;
    }

@PreDestroy(单例模式下才会销毁)

  • 在方法的声明语句上方使用,可以将这个方法设置为生命周期的销毁方法
@PreDestroy   
    {
        System;
    }

注入值

@Autowired (不推荐使用)

  • @Autowired,用于标记该属性是自动装配值
  • byType)实现自动装配
  • Bean-Id
  • UserDao
)
{
    {
        System;
    }
}
  • UserService
@Service
{
    @Autowired
    @)
    ;
    {
        userDao;
    }
}

@Resource (推荐使用)

  • 在需要注入的属性的上方添加该注解
  • 默认先按照名称来自动装配的(byName),如果名称对应不上,那么按照类型(byType)进行匹配
    @Resource   
    ;
  • Bean Id,添加了name属性,那么只是按照名称来装配,如果这个名称对应的Bean不存在,那么就注入失败
)   
    ;

@Value

  • @Value注解添加在属性的声明的上方,可以对属性注入值
  • 直接注入值
)
    ;
  • 的注解时还可以使用Spring表达式

 

https://cloud.tencent.com/developer/article/1120386

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
  • 2021-06-20
猜你喜欢
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2023-01-10
  • 2022-12-23
  • 2021-10-29
相关资源
相似解决方案