Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置。在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为在Spring2.0的版本时候是没有出现注解的使用
1. Spring常用注解如下
- @Component
- @Autowired
- @Qualifier
- @Scope
- @Controller
- @Service
- @Repository
2. 使用Spring注解的时候一定关注Spring框架需要加入的包【很重要】,我们这里以spring4.0.3版本为例来介绍
- common-logging.jar
- spring-core-4.0.3.jar
- spring-context-4.0.3.jar
- spring-beans-4.0.3.jar
- spring-expression-4.0.3.jar
- spring-aop-4.0.3.jar,【此jar包在使用<context:component-scan/>需要导入此包】
3. @Component注解
- @Component主要用于将一个Java类注入到Spring框架中,它相当于XML配置文件中的<bean id=”xxx” class=”xxx”/>
- 当使用了Spring注解后,我们需要在配置文件中添加<context:component-scan/>来扫描添加了注解的类,这样子声明注解的类才能起作用
- Bean实例的名称默认是Bean类的首字母小写,其他部分不变。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.gxa.spring.day02"></context:component-scan> </beans>
package com.gxa.spring.day02; import org.springframework.stereotype.Component; @Component public class StudentAnnotation { }
package com.gxa.spring.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.gxa.spring.day02.StudentAnnotation; public class Test02 { @Test public void m06() { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); StudentAnnotationstudentAnnotation = context.getBean("studentAnnotation", StudentAnnotation.class); System.out.println(studentAnnotation.hashCode()); } }
4. 除了@Component注解,Spring容器提供了3个功能和@Component注解等同。它们分别是用于对Dao,Service及Web层的Controller进行注解
- @Repository:用于对Dao实现类注解
- @Service:用于对Service实现类注解
- @Controller:用于对Controller实现类注解
时间: 2024-12-28 10:43:38