Spring的常见注解

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

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

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

 @RequestMapping("/insert")
 @ResponseBody
    public String insert(Product product) {
        System.out.println("product = " + product);
        mapper.insert(product);
        return "添加完成<a href='/'></a>";
    }

          return "添加完成<a href='/'></a>";直接返回到insert页面中.可以写一般的标签.

@RestController=@Controller +@ResponseBody

        省略@ResponseBody标签 代替@Controller.

@Autowired 自动装配

         ProductMapper 是一个写在mapper的接口;

 @Autowired
    ProductMapper mapper;

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

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

@Mapper

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

@Insert、@select、@delete

    @Insert("insert into product values(null,#{title},#{price},#{num})")
    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不起作用

    @NotBlank
    @NotEmpty
    @NotNull(message = "添加失败,相册名称数据不能为空")
    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')")和上面配套使用,只有拥有该权限才能访问

 @PreAuthorize("hasAuthority('/ams/admin/read')")
    public JSONResult<List<AdminListItemVO>> list(@ApiIgnore  @AuthenticationPrincipal LoginPrincipal loginPrincipal) {
        log.trace("使用人为:{},id :{}", loginPrincipal.getUsername(), loginPrincipal.getId());
        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

 @Test
    void addOne() {
        Item item=new Item()
                .setId(1L)
                .setTitle("小米卷纸")
                .setCategory("生活")
                .setBrand("小米")
                .setPrice(10.0)
                .setImgPath("xioami.jpg");
    }

@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格式时会忽略掉这个字段,使得向前端发送时不发送这个字段

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值