SpringBoot项目中自定义注解的使用】的更多相关文章

1.定义注解接口 @Documented @Retention(RUNTIME) @Target(METHOD) public @interface MyLog {    String value() default "日志注解"; } @Documented 注解: Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型…
1.错误场景: springboot项目中在.properties文件(.yml)文件中配置了属性值,在Bean中使用@Value注解引入该属性,Bean的构造器中使用该属性进行初始化,此时有可能会出现属性值为null,造成初始化程序的错误 2.错误原因: 因为Bean的构造器调用是在@Value属性赋值之前进行的,所以造成了属性还没有赋值,就被调用的情况. 3.解决方案: 将构造器中需要使用的@Value属性作为构造器的参数,确保构造器中使用该属性之前,属性已经得到初始化 理论先行,代码跟上(…
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 在yml中添加redis配置 设置缓存有效期为一天,配置类中使用 spring: redis:…
在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发 1.接收数据,以及验证 @PostMapping("/save") public ModelAndView save(@Valid ProductForm productForm, BindingResult bindingResult, Map<String, Object> map) { //1.表单验证 if (bindingResult.hasErrors()) { map…
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em / 1.2 KaTeX…
1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安全引用又是HQL面临的问题. 随着类型安全的域模型给软件开发带来的巨大好处,域的更改可以直接反应在查询上,而且随着域的更改查询也会自动随着改变.(即:同一套查询,只需要通过改变域就可以实现不同的查询) 针对Hibernate的HQL是Querydsl的第一个目标语言,但现在它支持JPA,JDO,JD…
1.启动项目的时候报错 1.Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 解决方法: 在yml配置文件中加入debug: true,因为默认的话是false 2.在集成mybatis时mapper包中的类没被扫描 org.springframework.beans.factory.NoSuchBean…
国际化 ,英文叫 internationalization 单词太长 ,又被简称为 i18n(取头取尾中间有18个字母); 主要涉及3个类: Locale用来设置定制的语言和国家代码 ResourceBundle 用来加载国际化资源文件 MessageFormat 用来格式化占位符 //先看结构: 在创建国际化资源文件时,如我在resources文件下建了一个i18n文件夹,下放了3个资源文件,idea自动会生成一个Resource Bundle 'messages'文件夹,这个文件夹不是真实存…
在SpringBoot项目中添加logback的MDC     先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web controller,在同一时间可能收到来自多个客户端的请求,如果一个请求发生了错误,我们要跟踪这个请求从controller开始一步步都执行到了哪些代码.有哪些log的输出.这时我们可以看log文件,但是log文件是多个请求同时记录的,基本无法分辨哪行是哪个请求产生的,虽然我们可以看线程,但线程…
在学习的时候常建新的项目,mark下商用的jar <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.0</version></dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-ja…
在 springboot 项目中使用 @SpringBootApplication 会自动标记 @EnableAutoConfiguration 在接口中经常需要使用时间类型,Date ,如果想要格式化成指定格式需要在 application.yml 配置文件中配置 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss.SSS time-zone: GMT+ defaultPropertyInclusion: non_null #非空属性才序列化 d…
springboot静态文件访问的问题,相信大家也有遇到这个问题,如下图项目结构. 项目结构如上所示,静态页面引入js.css如下所示. 大家肯定都是这样写的,但是运行的话就是出不来效果,图片也不显示.原因是因为springboot项目中的一个配置文件spring.mvc.static-path-pattern=/** 指的是/static/下的文件,修改过后如下,图片显示成功. 经过修改,这个简单的静态文件引入就可以使用了.详细方法:https://blog.csdn.net/catoop/a…
1. 剔除要引入的springboot项目中不需要的文件:如Application和ApplicationTests等 2.打包 不能使用springboot项目自带的打包插件进行打包: 3.打包 4.启动类引入 在Application启动类@SpringBootApplication(scanBasePackages = {"依赖的项目的class路径", "自己项目的class路径"}) 5.在pom中引入 在你的项目的pom.xml中引入你刚刚打包好的项目,…
参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及…
买买买结算系统 一年一度的双十一购物狂欢节就要到了,又到剁手党们开始表演的时刻了.当我们把种草很久的商品放入购物车以后,点击"结算"按钮时,就来到了买买买必不可少的结算页面了.让我们虚拟一个买买买结算系统,为结算页面提供商品.促销.库存等结算信息,就此系统展开如何在SpringBoot项目中集成CAT调用链.买买买结算系统包含以下4个项目: 结算UI:为前端页面提供结算的基础数据. 购物车API:获取用户购物车中有哪些商品. 商品API:获取商品详细信息 商品促销API:获取商品的促销…
maven resource 组件可以把pom的变量替换到相关的resouces目录中的资源文件变量 示例项目:内容中心 (文章管理)  生成jar包,生成docker ,生成k8s文件 1.项目结构 ├── content-api │   ├── pom.xml │   └── src │   ├── main │   │   └── java │   │   └── com │   │   └── itstudy │   │   └── content_api │   │   ├── dom…
mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和springboot项目中使用mybatis pagehelper 一.mybatis pagehelper在SSM项目中的使用 1.引入maven依赖,(自行选择版本,这里我用的4.1.3) 2.在mybatis的配置文件中进行配置 <plugins> <!--pageNum当前页数 pageSiz…
Springboot项目中 前端展示本地图片 本文使用的是Springboot官方推荐的thymeleaf(一种页面模板技术) 首先在pom文件加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> Springboot项目中reso…
一.定义我们自己的切库注解类 自定义注解有几点需要注意: 1)@Target 是作用的目标,接口.方法.类.字段.包等等,具体看:ElementType 2)@Retention 是注解存在的范围,RUNTIME代表的是注解会在class字节码文件中存在,在运行时可以通过反射获取到,具体看:RetentionPolicy 3)允许的变量,通常都要给定默认值,比如我们使用一个service时,可以@Service,也可以 @Service("xxxx") @Retention(Reten…
最近想做一些web项目来填充下业余时间,首先想到了使用springboot框架,毕竟方便 快捷 首先:去这里 http://start.spring.io/ 直接构建了一个springboot初始化的项目框架 然后:在页面上选择相应的依赖包,然后点击构建按钮,然后下载并且导入IDE中,目前喜欢使用IDEA 于是一个简答的springboot项目就搭建好了 废话说完,然后想体验下spring中redis的使用: 那就直接新建了一个类,然后 @Autowired 自动注入 RedisTemplate…
@Autowired 自动导入依赖的 Bean.byType方式.把配置好的 Bean拿来用,完成属性.方法的组装,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; @RestController public class Custo…
问题: springboot项目,依然是使用jpa.Hibernate来操作mysql,涉及到数据库的操作,就少不了事务.写了一个接口,用来测试@Transaction注解的作用,发现没有效果 分析: 在项目启动时候,看到Hibernate: create table hibernate_sequence (next_val bigint) engine=MyISAM,说明是MyISAM引擎,由此我们也就很容易想到MyISAM与InnoDB之间的区别 解决: 发现Hibernate默认创建的表是…
在后端数据接口项目开发中,经常遇到返回的数据中有null值,导致前端需要进行判断处理,否则容易出现undefined的情况,如何便捷的将null值转换为空字符串? 以SpringBoot项目为例,SSM同理. 1.新建配置类(JsonConfig.java) import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.f…
@EnableXX注解的使用场景 SpringBoot为开发人员提供了很多便利,例如如果想要定时功能,只要添加@EnableSchedule,即可配合@Schedule注解实现定时任务功能,不需要额外配置定时任务的处理线程,就可以直接使用(框架提供默认配置,在找不到用户自定配置的执行器时,使用默认配置) @EnableXXX注解给人的感觉就是有一个"开关",只要开关打开就可以对应的功能,非常方便. 有时候,我们可能也想实现一个功能,打包发布后,其他项目只要引入依赖,添加@Enable注…
今天在做毕设的时候,发现在前后端分离的情况下,去调用接口数据时很不方便,然后回想过去,和同学一起做项目的时候,他负责后端,我负责前端,当时调用他的弄好的接口可以说是非常方便,主要是可以通过UI页面直接对接口数据进行测试,清楚接口的返回数据类型.状态码.请求地址等等.今天就来学习一下这个接口文档生成工具Swagger. 一.首先介绍一下Swagger Swagger是一款RESTFUL(RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义.)…
1 问题描述:在 springboot 项目中有时候会需要读取一些资源文件,例如 office的 docx 文档或者 png.jpg的图片.在多模块项目中资源文件需要放到启动项目的 Resources 文件夹 示例代码如下: InputStream pngInStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("img.png"); ByteArrayOutputStream out =…
PS: 在RPC远程调用中,想要获取自定义的service的方法,就得自定义标签遍历拿到方法 PS:在spring中,两个最核心的 概念是aop和ioc,aop其实就是动态代理. ioc 就是解决对象的创建问题. 1.自定义标签 package cn.itcast_04_springannotation.userdefinedannotation.annotation; import java.lang.annotation.ElementType; import java.lang.annot…
最近使用springboot项目,一直以来文件都以英文格式存储,这次使用的是xls文件下载,文件名为中文的,特此记录下中文文件名的下载以及springboot中下载路径报错问题. 正文 在使用springboot导出excel的时候,出现了两个问题:如下 1. 导出的时候中文名乱码问题 如:鑱旂綉鍗煎叆妯℃澘.xlsx 2. 导出的时候springboot路径问题:在jar项目后会默认多一个!,导致路径错误. 具体实现思路是: 首先拿到文件名,然后拿到父路径和文件名,创建一个File,然后将此f…
jackson介绍 java代码中实现序列化和反序列化的工具类 jackson使用Demo https://github.com/Naylor55/JavaDebrisCode/tree/branch_Java-Serializable/javaserializable Ideal控制台报错信息 2019-05-22 15:43:20.333 [main] ERROR org.springframework.boot.SpringApplication.reportFailure:837 - A…
摘要: 本篇文章的场景是做调度中心和监控中心时的需求,后端使用TDDL实现分表分库,需求:实现关键业务的查询监控,当用Mybatis查询数据时需要从主库切换到备库或者直接连到备库上查询,从而减小主库的压力,在本篇文章中主要记录在Spring Boot中通过自定义注解结合AOP实现直接连接备库查询. 一.通过AOP 自定义注解实现主库到备库的切换 1.1 自定义注解 自定义注解如下代码所示 import java.lang.annotation.ElementType; import java.l…