SSM、SSH框架中注解
SSM、SSH框架中注解
常用注解小记
大体过程:表示层(*.jsp,…)调用控制层(controller,action),控制层调用业务层(service),业务层调用数据访问层(dao)。
Spring:
```plain text @Controller 对应控制层的Bean(Action/Control),标记在一个类上
@Service 对应业务层的Bean, 可以加入名字如@Service(“userService”)。当Action需要使用该业务层的实例时,只需在Action中声名一个同名的变 量来接收该对象(由Spring创建并注入)即可(配合@Resource注解)。标记在一个类上。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
**@Repository** 对应数据访问层的Bean,用法同@Service。当Service需要使用该数据访问层的实例时,只需声名一个同名变量来接受该对象(由Spring创建并注入)即可(配合@Resource注解)。标记在一个类上。
**@Autowired** 一般用于消除 setter、getter方法。Spring会将这些传递过来的值或者引用自动分配给那些属性。可以对类成员变量、方法及构造函数进行标注。@Autowired(required=false)表示依赖不是必须的,当没有找到相应bean的时候可以为null。他是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier。
**@Inject** 类似于@Autowired,不同的是@Autowired有一个request属性。是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合 @Named。
**@Value** 可以简化读取properties文件中的配置值。
**@AspectJ** 他标记在一个类上声名切面。Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置:
-
- **@Pointcut** @Pointcut(“execution(返回类型 方法所属类的全限定名.方法(参数))”)注解在新写的方法前来定义切点。
- **@Before** 在切点之前执行。
- **@AfterReturning** 在切点执行成功之后执行。
- **@After** 在切点之后执行。
- **@AfterThrowing** 在切点抛出异常后执行。
@Aspect
public class WQF{
@Pointcut(“execution(* *.perform(..))“)
public void performance(){}
@Before(“performance()”)
public void beforeMethod(){}
@AfterReturning(“performance()”)
public void afterReturingMethod(){}
@After(“performance()”)
public void afterMethod(){}
@AfterThrowing(“performance()”)
public void afterThrowingMethod(){}
## *Hibernate:*
- @Entity
- @Table
- @Id
- @Column
- @GeneratedValue
- @OneToOne
- @OneToMany
- @JoinColumn
- @LazyCollection
- *
**
**Struts2:**
```plain text
@Action/@Actions
@Result/@Results
@Scope
@ParentPackage
@Namespace
@Resource
Spring MVC
@Controller 使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和 Controller 方法之间的映射,这样的Controller 就能被外界访问到。之后把这个控制器类交给Spring 来管理。有两种方法:
@RequestMapping 使用@RequestMapping 注解的方法才是真正处理请求的处理器。可用于类或方法上。
@RequestParam @requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”)
@Resource和@Autowired都是做bean的注入时使用:
```plain text @Resource Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
@Autowired @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。
@PathVariable
@CookieValue
@SessionAttributes
@ModelAttribute
@ResponseBody
1
2
3
4
5
6
7
@Param 一般用在mapper层,简单类型(八种基本数据类型+包装类+String)传值的时候,会忽略占位符个数和命名,传给所有的占位符,使用@param注解,可以构建一个key-value键值对
```plain text
属性value --- 创建的键值对的key
如:@Param(value="key")String value