• Spring的常见注解


    @Controller:标记此类SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,@Controller 只是定义了一个控制器类。

    @RequestMapping("/regUser"):写在方法上,表示方法中的所有响应请求的方法都是以该地址作为父路径。提交和获取参数都连接到 get">。

    @ResponseBody 将方法的返回值提交到页面 body标签里(转换为josn

    1. @RequestMapping("/insert")
    2. @ResponseBody
    3. public String insert(Product product) {
    4. System.out.println("product = " + product);
    5. mapper.insert(product);
    6. return "添加完成";
    7. }

              return "添加完成";直接返回到insert页面中.可以写一般的标签.

    @RestController=@Controller +@ResponseBody

            省略@ResponseBody标签 代替@Controller.

    @Autowired 自动装配

             ProductMapper 是一个写在mapper的接口;

    1. @Autowired
    2. ProductMapper mapper;

            此注解是Spring框架中提供的注解,添加次注解后Spring框架和MyBatis框架,会自动创建一个实现类(实现了ProductMaper接口),并且实例化了此实现类,把实例化后的对象赋予了mapper.

            自动实例化接口,并完成数据库驱动连接和创建执行SQL语句对象(PreparedStatement )

    @Mapper

            用来表示该接口类的实现类对象交给mybatis底层创建,然后交由Spring框架管理,并且可以省略去写复杂的xml文件.

    @Insert、@select、@delete

    1. @Insert("insert into product values(null,#{title},#{price},#{num})")
    2. void insert(Product product);

            #{变量名} 会自动找到下面的方法中的参数列表的同名方法,如果没有同名参数的话会调用参数列表中对象的getxxx方法.对SQL语句进行封装.

    @Result(column = "old_price",property = "oldPrice")

            当数据库字段与实体类字段名不一致时使用.

    @JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒", timezone = "GMT+8")

    //设置JSON格式

    private Date created;

    @Value获取配置文件变量 

      @Value("${username}")  

       String username

    @Bean 将方法的返回值添加到spring容器中

    @WebFilter(filterName = "MYFilter", urlPatterns = {"/admin.html", "/insertProduct.html"})过滤器

    @ServletComponentScan 添加此注解,过滤器才能生效。

    @RestControllerAdvice:全局===>RestController+Advice 元注解

    @RequestMapping(value = {"/album"})在类上添加Mapping映射可多添加.

    @JsonInclude(JsonInclude.Include.NON_NULL)JSON中空时不创建

    @ExceptionHandler 不用写try/catch

    @Api(tags = "1管理员管理模块")在线文档排序,别名

    @ApiOperation("添加管理员")在线文档排序,别名

    @ApiOperationSupport(order = 100)在线文档排序

    @ApiModelProperty()用于方法,字段表示对model属性的说明或者数据操作更改 ,参数就会有默认值

    @Lazy 懒加载模式(单例)

    @Scope("prototye")SpringMVC默认是单例模式(Singleton),添加此注解将变为多例模式.

    @Qualifier("albumService")注入指定的bean

     

    @Valid 用于是否验证注解符合要求

     public JSONResult addNew(@Valid AlbumAddNewDTO albumAddNewDTO) {}

    @NotBlank(message = "密码不能为空") 

            注意在使用@NotBlank等注解时,一定要和@valid一起使用,不然@NotBlank不起作用

    1. @NotBlank
    2. @NotEmpty
    3. @NotNull(message = "添加失败,相册名称数据不能为空")
    4. private String name;

    @PathVariable("id")占位符 @PostMapping("/delete/{id:[0-9]+}")

    @Range(min = 1, message = "输入大于0的数")对传入的值进行判断。

    @Transactional 事务

    @EnableGlobalMethodSecurity(prePostEnabled = true)开启Security权限认证

    @PreAuthorize("hasAuthority('/ams/admin/read')")和上面配套使用,只有拥有该权限才能访问

    1. @PreAuthorize("hasAuthority('/ams/admin/read')")
    2. public JSONResult> list(@ApiIgnore @AuthenticationPrincipal LoginPrincipal loginPrincipal) {
    3. log.trace("使用人为:{},id :{}", loginPrincipal.getUsername(), loginPrincipal.getId());
    4. log.trace("查询列表成功");

    @ApiIgnore 忽视屏蔽某些参数

     @AuthenticationPrincipal  注入LoginPrincipal (LoginPrincipal )是藏在JWT中的数据,此注解常用在输出调用方法的人是谁

    @Aspect:作用是把当前类标识为一个切面供容器读取

    @Scheduled(fixedRate = 5 * 60 * 1000)// fixedRate:执行间隔时间,以毫秒为单位

    @Around("execution(* cn.tude.csmall.product.service.*.*(..))") aop

    @EnableDubbo  如果当前项目是Dubbo中的生产者,必须添加@EnableDubbo注解,添加之后,在服务启动时,当前项目的所有服务才能正确注册到Nacos中

    @DubboService  标记的业务逻辑层实现类,其中所有的方法都会注册到Nacos

    @DubboReference

    // 添加@DubboReference注解,表示当前业务逻辑层中需要消费其他模块的服务

    // 声明的接口应该是其他服务提供的业务逻辑层接口,因为Nacos中注册了业务的实现类,所以声明的接口会自动匹配到实现类对象

    @Accessors(chain = true) 支持链式set赋值,可以连续set

    1. @Test
    2. void addOne() {
    3. Item item=new Item()
    4. .setId(1L)
    5. .setTitle("小米卷纸")
    6. .setCategory("生活")
    7. .setBrand("小米")
    8. .setPrice(10.0)
    9. .setImgPath("xioami.jpg");
    10. }

    @AllArgsConstructor  自动生成全参构造方法

    @NoArgsConstructor  自动生成无参构造方法  

    @Document 对应ES框架的一个实体类 //indexName指定ES索引名 例如http中的(/questions),没有的话会自动创建

    @Id  SpringData通过Id注解标记当前实体类主键

    @Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_max_word")  标记分词,定义分词器

    @RequestParam(required = false,defaultValue = WebConsts.DEFAULT_PAGE) Integer page //给参数page设置默认值

    @JsonBackReference 添加了这个注解的字段,在后端向前端转化Json格式时会忽略掉这个字段,使得向前端发送时不发送这个字段

  • 相关阅读:
    六边形架构
    【深入浅出Java并发编程指南】「难点 - 核心 - 遗漏」让我们一起探索一下CyclicBarrier的技术原理和源码分析
    SQL中for xml path 的用法
    软件测试学习(一)基础概念、实质、说明书测试、分类、动态黑盒测试
    行业 SaaS 微服务稳定性保障实战
    TransmittableThreadLocal (TTL)
    JVM指令集
    逆向-beginners之残留数据
    四,立方体贴图
    EN 13970防水用柔性薄板—CE认证
  • 原文地址:https://blog.csdn.net/weixin_51722520/article/details/126751631