没有合适的资源?快使用搜索试试~ 我知道了~
java注解整理
资源推荐
资源详情
资源评论
1.注解整理
1.1. 附录注解(初级阶段不重要)
1.1.1. 注解
1.1.1.1. 声明 Bean 的注解:
组件 没有明确的角色;
在业务逻辑层( 层)使用;
在数据访问层( 层)使用;
在展现层()使用
1.1.1.2. 注入 Bean 的注解:
提供的注解;
提供的注解;
!" 提供的注解;
可注解在 方法上或属性上;注解在属性上,优点是:
代码少、层次更清晰。
1.1.1.3. @Enable***注解的使用方式和常用类型
观察下这些#$%注解的源码,可以发现所有的注解都有一个 注解。
注解是用来导入配置类的,这也就是说这些自动开启的实现其实是导入了一些自
动配置的 &。
注解导入配置方式的三种类型
第一类:直接导入配置类
'()#'*'+,#-.
/(/,*01'#.
()23/*-.
4$
5
#$2)
-
直接导入配置类 23/,这个类注解了3/,且注册了一个
2/, 的 &
第二类:依据条件选择配置类
'(#'*'+,#.
/(/,*01'#.
4
(3/*.
$5#$)
678/9/(.5/*:
$8'(.55:
(.5*,;<+:
(.5;*=;>#'?,##4#1#:
-
3/ 通过条件来选择需要导入的配置类,
3/ 的根接口为 ,这个接口需要重写 方
法,在此方法内进行事先条件判断。
若 为 ,;<+,则返回 ,83/ 这个配置类。
若 / 为 ,#',则返回 3/ 配置类。
第三类:动态注册 &
'(#'*'+,#.
/(/,*01'#.
4
(,8*.$5#$,8)
$8'(.55:
-
,8 实 现 了 &43/ 接 口 ,
&43/ 的作用是在运行时自动添加 & 到已有的配置类,通过重写
方法:
;
$ &43/(/ /@
&43/.
其中,/ 参数用来获得当前配置类上的注解;
&43A 参数用来注册 &。
#$,8 注解 激活 自动代理
6B8C9
开启对 自动代理的支持。
#$ 注解开启异步方法的支持。
#$2 注解开启计划任务的支持。
#$>$ 注解用来开启 >$ 的配置支持。也就是写 时的时候会用
到。
#$3/,/ 注解是用来开启对3/,/ 注解配置 &
的支持。
#$ 注解开启对 4, 的支持。
4,框架,主要针对的就是 唯一没有简化到的业务逻辑代码,至此,开发
者连仅剩的实现持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,
其他都交给 4,来帮你完成!
简单的说,4, 是用来持久化数据的框架。
#$'/ 注解开启注解式事务的支持。
注解#$'/ 通知 ,'/ 注解的类被事务的切面包
围。这样'/ 就可以使用了。
#$2 注解开启注解式的缓存支持
1.1.1.4. SpringMVC 常用注解:
1.1.1.4.1. @Controller
在 中,控制器 负责处理由 42分发的请求,它把用户请
求的数据经过业务处理层处理之后封装成一个 ,然后再把该 返回给对应的
进行展示。在 中提供了一个非常简便的定义 的方法,你无需继
承特定的类或实现特定的接口,只需使用标记一个类是 ,然后使用
D和D,等一些注解用以定义 0=请求和 方法之间的
映 射 , 这 样 的 就 能 被 外 界 访 问 到 。 此 外 不 会 直 接 依 赖 于
EFD和 EF等 EF对象,它们可以通过 的
方法参数灵活的获取到。 用于标记在一个类上,使用它标记的类就是一个
对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法
是 否 使 用 了 D注 解 。 只 是 定 义 了 一 个 控 制 器 类 , 而 使 用
D注解的方法才是真正处理请求的处理器。单单使用标记在一
个类上还不能真正意义上的说它就是 的一个控制器类,因为这个时候 还
不认识它。那么要如何做 才能认识它呢?这个时候就需要我们把这个控制器类交给
来管理。有两种方式:
(G)在 的配置文件中定义 的 $对象。
(! ) 在 的 配置文件中告 诉 该到哪里 去 找 标 记 为 的
控制器。
6H方式一96$IJ*2**$**JC9
6H 方 式 二 968B$KIJ*2**$JC9CC 路 径 写 到
的上一层(扫描包详解见下面浅析.
1.1.1.4.2. @RequestMapping
D 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表
示类中的所有响应请求的方法都是以该地址作为父路径。
D 注解有六个属性,下面我们把她分成三类进行说明(下面有相应示例)。
G、 , 2;
: 指定请求的实际地址,指定的地址可以是 0'模式(后面将会说明);
2: 指定请求的 2 类型, L#'、,;'、,0'、4#=#'# 等;
!、,
: 指 定 处 理 请 求 的 提 交 内 容 类 型 ( ' ) , 例 如 /C@
8C2:
B指定返回的内容类型,仅当 D 请求头中的(.类型中包含该指定类型
才返回;
、,2
: 指定 D 中必须包含某些参数值是,才让该方法处理。
2: 指定 D 中必须包含某些指定的 2 值,才能让该方法处理请求。
G、使用 D来映射 D请求与处理器
方式一、通过常见的类路径和方法路径结合访问 方法
方式二、使用 模板
D(JCC)$G-J.$)
D(JC2C)$!-J.
$ 2( ,2$ $G@ ,2$
(J$!J.$!.)
I(.:
*1(J1J.:
*;$(J需要放到 中的属性名称 J@J对应的属性值,它是一个
对象 J.:
:
-
-
0模板就是在 0中给定一个变量,然后在映射的时候动态的给该变量赋值。如 0模板
2FBCC2CC)$G-C8*2,这个模板里面包含一个变量 $G,那么当
我们请求 2FBCC2CC2C8*2的时候,该 0=就跟模板相匹配,只是把模
板中的 $G用 2来取代。这个变量在 中是使用,2$来标记的。
在 中,我们可以使用,2$来标记一个 的处理方法参数,表
示该参数的值将使用 0模板中对应的变量的值来赋值。
代码中我们定义了两个 0变量,一个是控制器类上的 $G,一个是 2方法
上的 $!,然后在 2方法的参数里面使用,2$标记使用了这两个变
量。所以当我们使用CC2C2C!*来请求的时候就可以访问到 的
2方法,这个时候 $G就被赋予值 2,$!就被赋予值 !,然后我们
在 2方法参数里面标注了参数 $G和 $!是来自访问路径的 2变量,
这样方法参数 $G和 $!就被分别赋予 2和 !。方法参数 $G是定义为
类型,$!是定义为 类型,像这种简单类型在进行赋值的时候 是会帮
我们自动转换的。
在 上 面 的 代 码 中 我 们 可 以 看 到 在 标 记 $G为 2变 量 的 时 候 我 们 使 用 的 是
,2$,而在标记 $!的时候使用的是,2$(M$!N.。这两者有
什么区别呢?第一种情况就默认去 0模板中找跟参数名相同的变量,但是这种情况只有
在使用 $模式进行编译的时候才可以,而第二种情况是明确规定使用的就是 0模板
中的 $!变量。当不是使用 $模式进行编译,或者是所需要使用的变量名跟参数
名不相同的时候,就要使用第二种方式明确指出使用的是 0模板中的哪个变量。
除了在请求路径中使用 0模板,定义变量之外,D中还支持通配符“%N。
如下面的代码我就可以使用C'C2C*访问到 的 >
方法。如:
D(JC'J.$)
D(J%CJ.
$>(.)
**(JJ.:
JJ:
-
-
当D, 中没有指定参数名称时,在代码是 $编译的情况下会默认取
更方法参数同名的参数,如果不是 $编译的就会报错。
使用 D的一些高级用法
(G) 属性
D(IJ,J@I)JGIGJ@J!J@JHJ-.
$,(.)
**(J,***********J.:
J,J:
-
用D的 属性指定了三个参数,这些参数都是针对请求参数而言的,
它们分别表示参数 G的值必须等于 G,参数 !必须存在,值无所谓,参数
必须不存在,只有当请求C,*并且满足指定的三个参数条件的时候才能
访问到该方法。所以当请求C,*7GIGO!I!的时候能够正确
访 问 到 该 ,方 法 , 当 请 求 C,*7
GIGO!I!OI的时候就不能够正常的访问到该方法,因为
在D的 参数里面指定了参数 是不能存在的。
(!)2 属性
D (I J2J @ 2I)D2* L#' @ D2*
4#=#'#-.
$2(.)
J2J:
-
在上面的代码中就使用 2参数限制了以 L#'或 4#=#'#方法请求C2的时候才
能访问到该 的 2方法。
()2 属性
D(IJEJ@2I)J2I2J@JJ-.
$E(.)
J2J:
剩余21页未读,继续阅读
资源评论
流氓animals
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功