Spring的注解
- Component:
用于实例化对象,相当于配置文件中的< bean id="" class=""/>
它支持一个属性value,相当于xml中bean的id。如果不写,默认值为类名的首字母小写 - @Controller @Service @Repository
这三个注解的功能跟@Component完全一样,只不过他们三个比较有语义化。
@Controller 一般标注在表现层的类上
@Service 一般标注在业务层的类上
@Repository 一般标注在持久层的类上
推荐使用这三个,当一个类实在不好归属在这三个层上时,再使用@Component - @Scope:
用于指定bean的作用范围(单例和多例),相当于配置文件中的< bean scope=""> - @PostConstruct @PreDestroy
这两个注解标注方法分别在对象的创建之后和销毁之前执行。相当于< bean init-method=“init” destroy-method=“destory” /> - @Autowired:
这个注解表示依赖注入,他可以标注在属性上,也可以标注在setter方法上 - @Qualifier:
要跟@Autowired联合使用,代表在按照类型匹配的基础上,再按照名称匹配 - @ComponentScan: 注解扫描
- @PropertySource: 用于引入其它的properties配置文件
- @Import: 在一个配置类中导入其它类的内容
- @RunWith: 指定Spring单元测试的运行环境(切换运行器)
- @ContextConfiguration:
Spring整合JUnit4测试时,使用注解引入多个配置文件 通常和@Runwith组合使用 - @Bean: 标注在方法 产生一个bean的方法,并且交给Spring容器管理
AOP相关的注解
- @Aspect 声名当前类是一个切面
- @PointCut(切点表达式) 定义切点
- @Before前置通知,该注解标识的通知在在切点之前执行
- @AfterReturning后置通知,该注解表示的通知在切点之后执行
- @AfterThrowing 异常通知
- @After 最终通知无论方法是否执行都会执行
- @Around 环绕通知
声明式事务相关的注解
- @Transactional:
可以作用于接口,接口方法,类,以及类方法上,当作用于类上,该类的所有public方法都具有该类型的事务属性 当该注解被标注到方法上的时候只有该方法具有该类型的事务属性 - @EnableTransactionManagement:
开启事务管理 相当于<tx: annotation-driven/>
SpringMVC的注解
- @RequestMapping(value,params,method):
(value请求的实际地址,method用于限制请求类型 支持数组的形式,params限制前台的必传参数支持数组) 标注在方法上 指定当前方法处理的url
此注解也可以标注在类上,标注在类上代表类中的所有方法都可以共用一段URL - @RequestParam:
标注在方法参数之前,用于对传入的参数做一些限制,支持三个属性:
value:默认属性,用于指定前端传入的参数名称
required:用于指定此参数是否必传 默认为true 必须穿该参数
defaultValue:当参数为非必传参数且前端没有传入参数时,指定一个默认值
//@RequestHeader 可以获取一个map结构,里面是请求头信息
//@RequestHeader(key) 根据key获取map中的value值
//@CookieValue(key) 根据key从cookie中获取value - @RequestBody:
- 将消息体封进一个字符串
- 将消息体封装进一个javabean
- @ResponseBody:
- 告诉SpringMVC 不在根据返回值寻找视图,而是将返回值作为一个字符串直接返回
- @ResponseBody 将返回值对象转成json串再返回给前端