Spring_Day02_常用注解

2019-11-18  本文已影响0人  背对背拥抱

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

相当于:

<bean id="" class="">
1)@Component

作用:
把资源让spring来管理。相当于在xml中配置一个bean。
属性:
value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。

2)@Controller 、@Service 、@Repository

他们三个注解都是 @Component的衍生注解,他们的作用及属性都是一模一样的。 他们只不过是提供了更加明确的语义化。
@Controller:一般用于表现层的注解。
@Service:一般用于业务层的注解。
@Repository:一般用于持久层的注解。
注意:如果注解中有且只有一个属性要赋值时,且名称是value,value在赋值是可以不写。

二、用于注入数据的:

相当于:

<property name="" ref="">
<property name="" value="">
1)@Autowired

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

2)@Qualifier

作用:
在自动按照类型注入的基础之上,再按照Bean的id注入。它在给字段注入时不能独立使用,必须和@Autowire一起使用;但是给方法参数注入时,可以独立使用。
属性:
value:指定bean的id。

3)@Resource

作用:
直接按照Bean的id注入。它也只能注入其他bean类型。
属性
name:指定bean的id。

4)@Value

作用:
注入基本数据类型和String类型数据的
属性:
value:用于指定值

三、用于改变作用范围的:

相当于:

<bean id="" class="" scope="">
1)@Scope

作用:
指定bean的作用范围。
属性:
value:指定范围的值。
取值:singleton prototype request session globalsession

四、和生命周期相关的:

相当于:

<bean id="" class="" init-method="" destroy-method="" />
1)@PostConstruct

作用: 用于指定初始化方法。

2)@PreDestroy

作用: 用于指定销毁方法。

五、和配置类有关:

1)@Configuration

作用:

用于指定当前类是一个spring配置类,当创建容器时会从该类上加载注解。获取容器时需要使用AnnotationApplicationContext(有@Configuration注解的类.class)。 

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

2)@ComponentScan

作用:
用于指定spring在初始化容器时要扫描的包。
作用和在spring的xml配置文件中的一样: <context:component-scan base-package="com.zl"/>。
属性:
basePackages:用于指定要扫描的包。和该注解中的value属性作用一样。

3)@Bean

作用:
该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器。
属性:
name:给当前@Bean注解方法创建的对象指定一个名称(即bean的id)。

4)@PropertySource

作用:
用于加载.properties文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,就可以使用此注解指定properties配置文件的位置。
属性:
value[]:用于指定properties文件位置。如果是在类路径下,需要写上classpath:

5)@Import

作用:
用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration注解。当然,写上也没问题。
属性:

value[]:用于指定其他配置类的字节码。

和Junit测试类有关:

在junit类中使用注解前,我们需要先在pom.xml引入依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.0.2.RELEASE</version>
</dependency>
1)@RunWith

替换原有运行器

@RunWith(SpringJUnit4ClassRunner.class)
public class TestCRUD {
2)@ContextConfiguration

指定spring配置文件的位置
locations属性:用于指定配置文件的位置。如果是类路径下,需要用classpath:表明
classes属性:用于指定注解的类。当不使用xml配置时,需要用此属性指定注解类的位置。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
//@ContextConfiguration(locations= {"classpath:bean.xml"})
public class TestCRUD {

上一篇 下一篇

猜你喜欢

热点阅读