spring boot笔记(不断更新)
Posted 小蜗牛爱远行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot笔记(不断更新)相关的知识,希望对你有一定的参考价值。
-
spring
-
@Autowired
//消除 set ,get方法 -
@ApiOperation
//swagger里的com.wordnik.swagger.annotations.ApiOperation
。@ApiOperation
和@ApiParam
为添加的API相关注解,个参数说明如下:
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”)
;其他参数可参考源码;
@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)
-
@Deprecated
表示方法已经过时,方法上有横线,使用时会有警告 -
@SuppressWarnings(value={“unchecked”, “deprecation”})
表示关闭一些警告信息(通知java编译器忽略特定的编译警告)用来抑制编译时的警告信息。 -
@EnableGlobalMethodSecurity(prePostEnabled=true)
的时候,@PreAuthorize
可以使用- @PreAuthorize可以用来控制一个方法是否能够被调用。
- @在controller层方法中添加权限配置(符合条件得才可以调用这个方法)
- 示例:
@PreAuthorize(value = "#oauth2.hasAnyScope('A','B','C','D')")
//添加机构编码权限,判断该机构是否有权限调用
@PreAuthorize(value="isAuthenticated()")
//添加登录权限判断,登录才可以调用
-
@RestController
注解,相当于@Controller+@ResponseBody
两个注解的结合,返回json数据不需要在方法前面加@ResponseBody
注解了。不能返回jsp,html页面,视图解析器无法解析jsp,html页面-
@RestController @RequestMapping("******") @Api(tags = "******") public class ****** {}
-
@Controller //处理文件上传 @RequestMapping(value="/******", method = RequestMethod.POST) public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file, HttpServletRequest request) { System.out.println("调用文件上传方法"); String contentType = file.getContentType(); String fileName = file.getOriginalFilename();
-
-
@Slf4j
:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j
; -
@Service
用于标注业务层组件 -
@Repository
用于标注数据访问组件,即DAO组件 -
@Component
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注 -
接收请求路径中占位符的值
@RequestMapping("show5/{id}/{name}") public ModelAndView test5(@PathVariable("id") Long ids, @PathVariable("name") String names){} public ModelAndView test5(@PathVariable Long id, @PathVariable String name){}
-
@RequestParam
:第一种情况参数都使用@RequestParam注入,那么地址的拼写是不需要加参数的。-
@RequestMapping(value = {"/findDictionarybyTypeId"},method = RequestMethod.GET) @ResponseBody public ItooResult findDictionarybyTypeId(HttpServletRequest request, HttpServletResponse response, @RequestParam(required = false, defaultValue = "") String typeId, @RequestParam(required = false, defaultValue = "") String dictionaryInfo)
@PathVariable
:****地址的拼写是需要加参数值****-
@RequestMapping(value = {"/exportToExcel/{typeId}"},method = RequestMethod.GET) @ResponseBody public ItooResult exportToExcel(HttpServletRequest request,HttpServletResponse response, @PathVariable String typeId, @RequestParam(required = false, defaultValue = "") String dictionaryInfo)
-
-
@EnableTransactionManagement
注解(开启事务支持,相当于XML中的<tx.annotation-driven/>配置方式),然后访问Service方法上标注@Transactional注解即可。如果将@Transactional注解注在Service类级别上,当前Service类的所有方法都将被事务增强(不建议)。 -
###swagger注释API
作用范围 API 使用位置 对象属性 @ApiModelProperty 用在出入参数对象的字段上 协议集描述 @Api 用于controller类上 协议描述 @ApiOperation 用在controller的方法上 Response集 @ApiResponses 用在controller的方法上 Response @ApiResponse 用在 @ApiResponses里边 非对象参数集 @ApiImplicitParams 用在controller的方法上 非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边 描述返回对象的意义 @ApiModel 用在返回对象类上 -
@ApiModelProperty()
用于方法,字段; 表示对model属性的说明或者数据操作更改- value–字段说明
- name–重写属性名字
- dataType–重写属性类型
- required–是否必填
- example–举例说明
- hidden–隐藏
-
常见注解
- @Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
- @AllArgsConstructor : 注在类上,提供类的全参构造
- @NoArgsConstructor : 注在类上,提供类的无参构造
- @Setter : 注在属性上,提供 set 方法
- @Getter : 注在属性上,提供 get 方法
- @EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
- @Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
-
-
它与java中的泛型有关。如果我提到
ArrayList<String>
这意味着我只能向该ArrayList添加字符串类型对象。Java中泛型的两个主要好处是:
- 减少程序中的强制转换数,从而减少程序中潜在的错误数。
- 提高代码清晰度
-
throws Exception
放在方法后边,是throws Exception
表示的是本方法不处理异常,交给被调用处处理(如果你不希望异常层层往上抛,你就要用throws Exception
) ,而且被调用处必须处理。 -
集合判断
- CollectionUtils.isEmpty()
- CollectionUtils.isEmpty(null): true
- CollectionUtils.isEmpty(new ArrayList()): true
- CollectionUtils.isEmpty({a,b}): false
- CollectionUtils.isNotEmpty()
- CollectionUtils.isNotEmpty(null): false
- CollectionUtils.isNotEmpty(new ArrayList()): false
- CollectionUtils.isNotEmpty({a,b}): true
- CollectionUtils.isEmpty()
-
toPlainString()
:返回不带指数字段的此 BigDecimal 的字符串表示形式。通俗来讲就是直接显示,不用科学计数法表示。import java.math.BigDecimal; public class BigDecimalDemo { public static void main(String[] args) { BigDecimal bg = new BigDecimal("1E11"); System.out.println(bg.toEngineeringString()); System.out.println(bg.toPlainString()); System.out.println(bg.toString()); } } //100E+9 //100000000000 //1E+11
-
concat(String s)
字符串拼接 -
File.separator
是系统默认的文件分割符号,屏蔽了这些系统的区别 -
分页请求
//PageUtils自定义类 //PageUtils.build(Integer pageNum, Integer pageSize)如果传入分页参数为空,设置默认值(1,10) //PageUtils.validCheck(Integer pageNum, Integer pageSize)检查分页参数,如果pageSize为空或者pageNum为空或者参数值小于1,抛出异常:“分页参数错误” Page<ModelInfoRes> page = PageUtils.build(req.getPageNum(), req.getPageSize());
-
List<String> collect = staff.stream().map(x -> x.getName()).collect(Collectors.toList()); ``System.out.println(collect); ``//[mkyong, jack, lawrence]
-
时间格式化:
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
-
UPDATE cdr_out set policy_number = CONCAT('["',policy_number,'"]')
-
org.springframework.beans.BeanUtils.copyProperties
方法进行对象之间属性的赋值,避免通过get、set方法一个一个属性的赋值 -
服务之间的调用-----Feign
- 启动类加入:@EnableFeignClients注解开启对 Feign Client 扫描加载处理。
-
将从redis中获得的字符串直接转换成对象:
List interactiveRecordList = JSON.parseArray(JSON.toJSONString(interactiveRecordListTmp), InteractiveRecord.class); -
Serializable是一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
-
查询-日期
//日期获取 LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd")); QueryWrapper<RecordOutDto> wrapper = new QueryWrapper<>(); wrapper.eq("transfer_status", 1).between("create_time", date, date.plusDays(1));
-
xml中resultType="",sql 中as的值,定义的实体中必须存在,才能调用实体类,set几个值,里面有几个值。
-
日志设置:
private static Logger logger = LoggerFactory.getLogger(ThreadManager.class)
;
以上是关于spring boot笔记(不断更新)的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot:thymeleaf 没有正确渲染片段
解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式