Spring_Day02_常用注解
一、用于创建对象的注解:
相当于:
<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 {