spring的注释

注解

注解的原理 转自 https://www.cnblogs.com/acm-bingzi/p/javaAnnotation.html

注解本质是一个继承了Annotation 的特殊接口,其具体实现类是Java 运行时生成的动态代理类。而我们通过反射获取注解时,返回的是Java 运行时生成的动态代理对象$Proxy1。通过代理对象调用自定义注解(接口)的方法,会最终调用AnnotationInvocationHandler 的invoke 方法。该方法会从memberValues 这个Map 中索引出对应的值。而memberValues 的来源是Java 常量池。

注解的用处

      1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@param @return 等
      2、跟踪代码依赖性,实现替代配置文件功能。比如Dagger 2 依赖注入,未来java 开发,将大量注解配置,具有很大用处;
      3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

spring异常处理

转自 https://www.cnblogs.com/shuimuzhushui/p/6791600.html

  • @ExceptionHandler:统一处理某一类异常,从而能够减少代码重复率和复杂度; value()可以指定异常类

方法返回值可以为:

  • ModelAndView对象
  • Model对象
  • Map对象
  • View对象
  • String对象
  • 还有@ResponseBody、HttpEntity<?>或ResponseEntity<?>,以及void

 java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。

  • @ControllerAdvice:异常集中处理,更好的使业务逻辑与异常处理剥离开
  • @ResponseStatus:可以将某种异常映射为HTTP状态码

 

  • @NoArgsConstructor : 生成一个无参数的构造方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。是Lombok插件三种生成不同构造方法的注解,来完成项目中不同构造方法的需求。

@NoArgsConstructor : 生成一个无参数的构造方法
@AllArgsContructor: ?会生成一个包含所有变量
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。
主要使用前两个注解,这样就不需要自己写构造方法,代码简洁规范。
 

https://www.cnblogs.com/hoojjack/p/6568920.html

@Entity            对实体注释。任何Hibernate映射对象都要有这个注释

@Table           声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe),目录(Catalog)和schema的名字。该注释不是必须的,如果没有则系统使用默认值(实体的短类名)。

https://www.cnblogs.com/softidea/p/6216722.html

@Entity注释指名这是一个实体Bean,@Table注释指定了Entity所要映射带数据库表,

 

@GeneratedValue 四种标准用法为ABLE,SEQUENCE,IDENTITY,AUTO

JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO. 
TABLE:使用一个特定的数据库表格来保存主键。 
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 
IDENTITY:主键由数据库自动生成(主要是自动增长型) 
AUTO:主键由程序控制。 
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})

@JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。

https://blog.csdn.net/ngl272/article/details/70217104

例如:

User实体中会有字段password字段,当返回用户信息给前台的时候,当然是不希望将password值也一并返回,

所以,可以在password属性上加上注解JsonIgnore

或者,可以在User类上加上注解@JsonIgnoreProperties(value = "{password}")

"update NoteInfo set NDataStatus=@NDataStatus where NId in @NIds"

select * from test1 where id in (select ids_str from test2)
即:

select * from test1 where id in ("1,2,3")

https://cloud.tencent.com/developer/ask/58379

@Slf4j https://www.cnblogs.com/weiapro/p/7633645.html

@RequestMapping("list/{isMember}/{ownerType}/{ownerId}") https://www.iteye.com/news/32657/

 @RequestMapping(value = "{userId}", method = RequestMethod.DELETE)

value:     指定请求的实际地址,指定的地址可以是URI Template 模式;

method:  指定请求的method类型, GET、POST、PUT、DELETE等;

https://blog.csdn.net/weixin_43453386/article/details/83419060

@PathVariable https://blog.csdn.net/ckc_666/article/details/79239974 

//@PathVariable可以用来映射URL中的占位符到目标方法的参数中
@RequestMapping("/testPathVariable/{id}")
    public String testPathVariable(@PathVariable("id") Integer id)
    {
        System.out.println("testPathVariable:"+id);
        return SUCCESS;
    }

 

.yml配置文件

 配置文件数据的读取:
比如我在文件中配置了一个 
massage:
  data:
    name: qibaoyi
我在类中想要获取他 需要这样去写:
@Value("${message.data.name}")
private String name;

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/conference?userSSL=true
    username: root
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
  mail:
    host: xxx.vip.163.com
    username: xxx@vip.163.com
    password: xxx123
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
log:
  path: C:/Development/mpt-expo/logs
  level: info
excel:
  export: C:/Development/mpt-expo/excel/export.xls
  import:
    icode: C:/Development/mpt-expo/excel/icode/
    user: C:/Development/mpt-expo/excel/user/
config:
  limit:
    conference.register:
      member: 5
      normal: 3
    invitation.code:
      personal: 1
      group: 10
    cutpoint.time:
       .....
  shortlink:
    conference: http://locahost:8080/front/Conference/qr.html?id=
    exhibition: http://locahost:8080/front/Conference/qr_exhibition.html
 

 

Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值