Spring学习之路-注解(随时更新)

1 Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:
(1)RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略。
(2)RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略。
(3)RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.
2 Documented 注解
Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中. 示例6进一步演示了使用 @Documented:
3 Target:定义注解的作用目标
(1)@Target(ElementType.TYPE) //接口、类、枚举、注解。
(2)@Target(ElementType.FIELD) //字段、枚举的常量
(3)@Target(ElementType.METHOD) //方法
(4)@Target(ElementType.PARAMETER) //方法参数
(5)@Target(ElementType.CONSTRUCTOR) //构造函数
(6)@Target(ElementType.LOCAL_VARIABLE)//局部变量
(7)@Target(ElementType.ANNOTATION_TYPE)//注解
(8)@Target(ElementType.PACKAGE) ///包
4
(1)@scope 作用范围
(2) @NotEmpty 用在集合类上面
(3) @NotBlank 用在String上面
(4) @NotNull 用在基本类型上
5 Swagger注解:
(1)@Api:修饰整个类,描述Controller的作用。
(2)@ApiOperation:描述一个类的一个方法,或者说一个接口。
(3)@ApiParam:单个参数描述
(4)@ApiModel:用对象来接收参数
(5)ApiProperty:用对象接收参数时,描述对象的一个字段
(6)@ApiResponse:HTTP响应其中1个描述
(7)@ApiResponses:HTTP响应整体描述
6 java.lang下面的三个注解
(1)@Override表示重写(当然不写也可以)。
(2)@Deprecated是这个方法或类不再建议使用
(3)@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。
扩展:方法重载(Overloading)和方法重写(Overriding)都是多态性的表现
7 SpringAop
(1) @Before 是在所拦截方法执行之前执行一段逻辑。
(2)@After 是在所拦截方法执行之后执行一段逻辑。
(3)@Around 是可以同时在所拦截方法的前后执行一段逻辑
8 @ComponentScan 扫描带有Component注解的类,可以通过basePackageClasses属性指定扫描的类,可以同basePackages属性执行扫描的包
9 @Inherited表明自动继承
10 @SpringBootApplication:@Configuration + @EnableAutoConfiguration + @ComponentScan。
(1)@Configuration和@bean一起使用。@bean注解告诉spring,一个带有@bean注解的方法将返回一个对象,该对象应该被注册为spring应用程序中的bean。@Configuration注解标识的类,可以使用springIOC容器作为bean定义的来源。
@name和@bean用法基本上相同,有很小的区别。
(2)@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
(3)@ComponentScan:会自动扫描指定包下面全部标有@Component的类,注册成为bean,当然包括@Service、@Repository、@Controller。
注册Bean@Component 、@Repository、@ Controller、@Service 、@Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。
11 @Autowied、@Resource、@Inject注入bean

12 @EnableDiscoveryClient
13 @EnableAsync
14 @EnableScheduling

15 @profile:指明某个bean在什么环境下创建,没有指明@profile的bean会被直接创建。
16 @Conditional:它可以用到带有@Bean注解的方法上。 如果给定的条件计算结果为true, 就会创建这个bean
17 @Qualifier(”iceCream“):识别BeanID为iceCream的bean
18 @Primary:多个实现类选择最优先的实现类。
19 @DeclareParents(value=”,defaultImpl=)。value指定被引入的Bean类型,defaultImpl指定引入接口的实现。AOP引入新功能时使用。
20 请求相关的注解
(1)@requestMapping:用来处理请求地址的注解,可以用于方法和注解上。
(2)@requestParam:获取请求中的参数,可以指定参数的名字,如果不指定必须和请求名字相同。获取参数中的name属性,请求中必须存在这个name属性。
@RequestMapping(value = “/main”,method = RequestMethod.GET)
public String home(@RequestParam(“name”) String name) {
System.out.println(“home++++++++++++++++++”+name);
return “home”;
(3)@PathVariable:可以将url中占位符绑定到控制器中的入参中。(2)(3)两个一个是获取url中参数,一个是获取占位符。
/home/rqParam?name=lucas 在控制器中用@RequestParam获取
/home/rqPV/123 在控制器用@PathVariable获取
(4)@requestbody接收一个json对象的字符串。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值