一、spring中常用注解
1、IOC注解
@Component
可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean),并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可。
属性:value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写
@Repository
用于将数据访问层(DAO层)的类标识为 Spring 中的 Bean,其功能与@Component 相同。
@Service
通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
@Controller
通常作用在控制层(如 Struts2 的 Action),用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
@Autowired
用于对 Bean 的属性变量、属性的 Set 方法及构造函数进行标注,配合对应的注解处理器完成 Bean 的自动配置工作。默认按照 Bean 的类型进行装配。
@Resource
其作用与 Autowired 一样。其区别在于 @Autowired 默认按照 Bean 类型装配,而 @Resource 默认按照 Bean 实例名称进行装配。
@Qualifier
与 @Autowired 注解配合使用,会将默认的按 Bean 类型装配修改为按 Bean 的实例名称装配,Bean 的实例名称由 @Qualifier 注解的参数指定。
@Value
注入基本数据类型和 String 类型数据的
@Scope
指定 bean 的作用范围。一般不配置,采用默认的单例。
@Configuration
用于指定当前类是一个 spring 配置类,等价于bean.xml
@ComponentScan
用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的:<context:component-scan base-package=“com.itheima”/>是一样的。
属性:basePackages:用于指定要扫描的包。
@Bean
该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器。
@PropertySource
用于加载.properties 文件中的配置。
属性:value[]:用于指定 properties 文件位置。如果是在类路径下,需要写上 classpath:
@Import
用于导入其他配置类
2、AOP注解
@Aspect
用于定义一个切面。
@Pointcut
用于定义切入点
@Before
用于定义前置通知,相当于 BeforeAdvice。
@AfterReturning
用于定义后置通知,相当于 AfterReturningAdvice。
@Around
用于定义环绕通知,相当于MethodInterceptor。
@AfterThrowing
用于定义抛出通知,相当于ThrowAdvice。
@After
用于定义最终final通知,不管是否异常,该通知都会执行。
@DeclareParents
用于定义引介通知,相当于IntroductionInterceptor。
@EnableTransactionManagement
纯注解开启事务的支持 ,等价于<tx:annotation-driven … />
3、事务注解
@Transactional
在service层使用此注解相当于配置了事务支持
@EnableTransactionManagement
纯注解使用 代表开启对注解事务的支持,等价于<tx:annotation-driven … />
二、spring mvc注解
@RequestMapping
用于建立请求 URL 和处理请求方法之间的对应关系。
GetMapping,PostMapping,DeleteMapping,PutMapping
分别对应get/post/delete/put 等http请求方式 ,如果请求方式不对,返回405状态码
@RequestParam
把请求中指定名称的参数给控制器中的形参赋值。
属性:
value: 请求参数中的名称。
required:请求参数中是否必须提供此参数。 默认值: true。表示必须提供,如果不提供将报错。
@RequestBody
用于获取请求体内容。直接使用得到是 key=value&key=value…结构的数据。
实现将 controller 方法返回对象转换为 json 响应给客户端。
get 请求方式不适用。
属性:required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值为 false, get 请求得到是 null。
@RestController
标识该类中的所有方法都返回json数据,方法上不需要再加ResponseBody;
@PathVaribale
用于绑定 url 中的占位符。
例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。
url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。
属性:
value: 用于指定 url 中占位符名称。
required:是否必须提供占位符。
三、mybatis中常用注解
@Insert:实现新增
@Update:实现更新
@Delete:实现删除
@Select:实现查询
@Result:实现结果集封装
@Results:可以与@Result 一起使用,封装多个结果集
@ResultMap:实现引用@Results 定义的封装
@One:实现一对一结果集封装
@Many:实现一对多结果集封装
@CacheNamespace:实现注解二级缓存的使用
四、junit注解
@RunWith(SpringJUnit4ClassRunner.class)
替换junit里面的main方法(运行器)
@ContextConfiguration(classes= SpringConfiguration.class)
指定配置类
@ContextConfiguration(locations = “classpath:bean.xml”)
指定配置文件的路径