##Sping框架IOC中常用的注解大家一定要记住

Sping框架IOC中常用的注解


 一,用于创建对象的注解:

##1,@Component

  作用:把资源让sping来管理,相当于在xml中配置一个bean

  属性:value:指定bean 的id,如果不指定value属性,默认bean 的id就是当前类的类名,首字母小写。

    ~1,@Contoller  @Service  @Respository

      他们三个注解都是针对一个的衍生注解,他们的作用及属性都是一摸一样的,不过@Contoller针对的是表现层的注解,@Service针对的是业务层的注解,@Respository针对的是持久层的注解

    注意:如果注解中有且只有一个属性要赋值时,且名称是value,value在赋值时可以不写。

@Component//当我们把一个类当成我们需要的配置,或者工具类的时候可以用到
public class TransactionManager {
    @Autowired
    private ConnectionUtil connectionUtil;

二,相当于注入的注解:

相当于:<property name="" ref="">

##1,@Autowired

  作用:自动按照类型注入,当使用注解注入属性时,set方法可以省略,它只能注入其他bean类型,当有多个类型匹配时,使用要注入的对象变量名称作为bean的id,在psing容器查找,找到了可以注入,找不到就会报错。

public class AccountDaoImpl implements AccountDao {
    @Autowired
    QueryRunner queryRunner;
    @Autowired
    ConnectionUtil connectionUtil;

  上面这个是在持久层,我们需要用到queryRunner这个对象,所以可以直接用这个注解,可以自动注入,方便我们使用

public class AccountServiceImpl implements AccountService {
    @Autowired
    AccountDao accountDao;
    @Autowired
    TransactionManager transactionManager;

  上面这个是业务层,但是需要用到持久层的对象,所以我们可以用这个注解,方便使用

##2,@Qualifer

  作用:在自动按照类型注入的基础上,再按照bean的id注入,他在给字段注入时不能独立使用,必须和@Autowired一起使用,但是给方法参数注入时,可以独立使用。

  属性:value指定bean 的id

    @Autowired
    @Qualifier("id")
    QueryRunner queryRunner;

##3,@Resource

  作用:直接按照Bean的id注入,他只能注入其他bean类型

  属性:name指定bean 的id

##4,@Value

  作用:注入基本数据类型和string'类型的数据

  属性:value用于指定值

三,相当于作用于范围的注解:

相当于:<bean id="" class="" scope="">

##1,@Scope

  作用:指定bean的作用范围

  属性:value指定范围的值

四,和生命周期相关的(了解)

相当于:<bean id="" class="" init-method="" destroy-method="" />

##1,@PostConstruct

  作用:用于指定初始方法

##2,@PreDestory

  作用:用于指定销毁方法

五,新注解

##1,@Configuration

  作用:用于指定当前类时一个spring配置类,当创建容器时会从该类上加载注解,获取容器时需要使用AnnotationApplicationContext

  属性:value用于指定配置类的字节码

##2,@ComponentScan

  作用:用于指定sping再初始化容易时需要扫描的包,作用和spring的xml配置文件中的<context:component-scan base-  package="com.itheima"/>是一样的。

##3,@Bean

  作用:该注解只能写在方法上,表明此方法创建一个对象,并且放入spring容器中

  属性:name给当前的@Bean注解方法创建的对象指定一个名称(即bean的id)。

##4,@PropertySource

  作用:用于加载.properties文件中的配置,例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,就可以使用此注解指定properties配置文件的位置。

  属性:value[] 用于指定properties文件位置,如果是在类路径下,需要协商classpath;

##5,@Import

  作用:用于导入qita配置类,再引入其他配置类时,可以不用再写@Configuration注解,当然,协商也没问题,

  属性:value 用于指定其他配置类的字节码

##6,@Runwith(常用)

@RunWith(SpringJUnit4ClassRunner.class)

##7,@ContextConfiguration(常用)

@ContextConfiguration("classpath:applicationContext.xml")
原文地址:https://www.cnblogs.com/liurui-bk517/p/11344059.html