
Spring
文章平均质量分 63
Spring
howeres
Quick and dirty /
Scale generates benefits / Building in public (BIP)
展开
-
SpringBoot 项目瘦身(maven/gradle)
Gradle thin jar调用 bootJar 打包运行的时候也不需要指定 -Djava.ext.dirs=./lib 或 -Dloader.path=./lib 了, 将 lib 目录放在 jar 包同级目录下, 直接 -jar运行就可以了loader.path可以使用 --classpath / -cp 指定类加载的路径,但 classpath 的生效是有条件的使用 时 (此时 -cp 无效), 可以使用 loader.path 指定类加载路径加载其他 jar, loader.path原创 2023-01-05 11:01:36 · 2075 阅读 · 8 评论 -
Spring Data JPA
Entity 类、Repository 类会被自动扫描到并注册到 Spring 容器, 此时无需额外配置. 当不在同一包或不在子包下时, 需要分别通过在启动类上加注解 @EntityScan(basePackages = {“xxx.xxx”}) 允许多处有交集、@EnableJpaRepositories(basePackages = {“xxx.xxx”}) 允许多处不能交集 来分别指定 Entity、Repository 类的包名JPA 不用 @Repository实体类注解实体类属性JPA命名...原创 2022-06-22 11:29:49 · 496 阅读 · 1 评论 -
ApplicationRunner 与 CommandLineRunner
ApplicationRunner 与 CommandLineRunner原创 2022-06-06 01:29:09 · 261 阅读 · 0 评论 -
WebMvcConfigurer
WebMvcConfigurer1 WebMvcConfigurerAdapter 是 WebMvcConfigurer 的实现类大部分为空方法 (由于Java8中可以使用default关键字为接口添加默认方法,所以在源代码中spring5.0之后就已经弃用本类) 如果需要我接着可以实现WebMvcConfigurer类。2 WebMvcConfigurationSupport 是 mvc 的基本实现并包含了 WebMvcConfigurer 接口中的方法3 WebMvcAutoCon原创 2022-05-19 17:08:40 · 2656 阅读 · 0 评论 -
HTTP 请求格式与RestTemplate
Http格式请求:GET /mix/76.html?name=kelvin&password=123456 HTTP/1.1Host: www.fishbay.cnUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36Acce原创 2021-09-29 20:15:50 · 610 阅读 · 0 评论 -
Properties 类 和 @ConfigurationProperties 注解 ( yaml 时间格式)
new:Properties类想当于一个HashTable,但不使用继承的put、get方法load:使用时load方法加载一个inputstream(一般使用Xxx.class.getResourceAsStream("/application.properties") // 从jar包中读取资源流)size:判断读取的内容是否为空getProperty:传入key的字符串获取setProperty:传入key和value,等同于在HashTable中插值store:传入outputstre.原创 2021-08-04 15:48:32 · 969 阅读 · 1 评论 -
Gateway 笔记
gateway:导入依赖:<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <原创 2021-11-22 16:45:46 · 362 阅读 · 0 评论 -
YAML 写法
使用注解 @ConfigurationProperties 映射在使用@ConfigurationProperties(prefix = "thread-pool", ignoreUnknownFields = false)时,yml 文件内可以是threadPool/thread-pool,这就叫松散绑定,是springboot项目读取yml配置文件的约定;日期date: 2020/7/28Map(键值对)people: {name:zhangsan, age: 20}使用注.原创 2021-12-08 17:41:45 · 236 阅读 · 0 评论 -
Spring 中的优先级
@Beanpublic A getA(){ final A a = new A(); a.setA("aA"); a.setB("aB"); a.setD("aD"); return a;}@ConfigurationProperties(prefix = "a")@Componentpublic class A { private String a; private String b; private String c; private String d;}ym原创 2022-03-03 14:41:46 · 516 阅读 · 0 评论 -
Springboot 文件上传、文件下载
【代码】Springboot 文件上传、文件下载。原创 2021-10-03 20:43:26 · 2375 阅读 · 1 评论 -
Springboot 单元测试 @SpringBootTest 与 RunWith
一. 单元测试SpringMVC:@ContextConfiguration(locations="classpath:applicationContext.xml") #用来指定Spring的配置文件@RunWith(SpringJUnit4ClassRunner.class) #指定用那种驱动进行单元测试public class IOCTest{}@RunWith(xx.class) 指定Spring的单元测试模块来执行标了@Test注解的测试方法SpringBoot:@RunW原创 2021-03-08 00:57:52 · 7584 阅读 · 4 评论 -
Spring版本号缩写 SR RC GA 代表的意思
版本号代表的意思:(SR1,SR2)>(RC1,RC2)>PRE(M1,M2)>GA>SNAPSHOT修正版 candidates milestone Generally Availability SNAPSHOT原创 2020-09-17 16:37:30 · 1197 阅读 · 0 评论 -
Springboot打war包部署,以及出现404错误的原因
一、(重要) 与打jar包直接部署不同,需要在启动类上继承SpringBootServletInitializer类,并重写configure方法。二、排除内置tomcat详细:1、排除内置tomcat<!-- 移除springboot中web模块的tomcat依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri原创 2020-11-17 17:03:48 · 3081 阅读 · 3 评论 -
MySQL 事务级别、事务传播特性
事务:本地事务@Transactional(rollbackFor = Exception.class)exception分为运行时异常和非运行时异常error是一定会回滚的非运行时异常是RuntimeException以外的异常,以及用户自定义的Exception异常。java编译器会强制要求对异常进行处理。传播特性作用于内层方法上,加在外层方法上是无效的;内层异常总会影响外层;PROPAGATION_REQUIRED:如果不存在外层事务,就主动创建事务(内层会单独回滚);否则使用外原创 2021-10-19 20:22:42 · 1206 阅读 · 1 评论 -
springboot配置优先级(bootstrap和application)
bootstrap和application的区别bootstrap.yml 用于 ApplicationContext 引导阶段。bootstrap.yml 由父 Spring ApplicationContext 加载。先于 application.yml。bootstrap.yml 用来定义系统级别的参数配置,这些参数一般不会变动。application.yml 用来定义应用级别的参数配置。如果搭配 spring-cloud-config 使用 application.yml 里面定义的文件可以实原创 2021-10-01 21:56:26 · 4306 阅读 · 2 评论 -
自定义重复注解 @Repeatable 使用方式
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FieldMaps { FieldMap[] value();}@Document:Javadoc工具会将此注解标记元素的注解信息包含在javadoc中。(默认,注解信息不会包含在Javadoc中)默认,注解信息不会包含在Javadoc中。@Target(ElementType.FIELD)@Retent原创 2021-09-05 00:57:42 · 1243 阅读 · 0 评论 -
@Transactional注解失效:Spring AOP为什么调用本类切面方法没有生效
@Transactional注解失效:Spring AOP为什么调用本类切面方法没有生效AOP 的实现原理是,通过动态代理生成一个新的代理类(因为是运行时生成,所以称为动态),再通过代理类来调用目标方法,并在调用前或调用后添加操作。JDK 动态代理需要通过接口类;CGlib动态代理不需要目标实现接口;动态代理的实现类似于:@Servicepublic class A { @Transactional public void a(){ b(); c原创 2022-02-28 13:50:44 · 1275 阅读 · 1 评论 -
@annotation 注解的继承
注解继承分为两种情况: 按照ElementType区分, 一类是Type(class, interface), 另一类是其他(method等)在后一类, 注解在方法和属性上时, 无论怎样都会被子类或子接口继承, 除非子类或子接口重写.而在Type上时, 只有在类上(在jdk8上, 接口无法继承), 且注解含有@Inherited时, 才会被继承;public class IterInheritedTest { @Inherited @Target({ElementType.TYP.原创 2021-12-22 10:10:46 · 6893 阅读 · 0 评论 -
@DateTimeFormat 与 @JsonFormat 的区别
@DateTimeFormat 与 @JsonFormat 的区别@JsonFormat 是 jackson 对 json 数据进行格式化, 包含序列化和反序列化. 只与 json 有关.@DateTimeFormat 是 spring 对日期格式的赋值进行格式化, 只包含反序列化. 作用是限制入参格式.为什么 @DateTimeFormat 要限制呢?因为日期的表现形式有很多种, 如果不规定格式, 后端就不知道以何种格式接收, 就好比年月日和日月年. 设置 @DateTimeForm原创 2022-02-28 14:17:22 · 1572 阅读 · 0 评论 -
@RequestParams装载等
@RequestParams 可以不写, 基本类型不赋值会报500错误, 可以写成包装类型, 或者改用Bean传值. (Bean的int类型会给默认值0)@RequestBody 这个通常是专门为了application/json和application/xml等设置的, 后面可以直接写bean(@RequestParam(value="myParam") List<String> myParams)实际上是:myparam=myValue1&myparam=myValue2原创 2021-08-22 17:19:03 · 258 阅读 · 0 评论 -
@SpringbootTest 更新失效
原因:TransactionContext(org.springframework.test.context.transaction.TransactionContext)INFO o.s.t.c.t.TransactionContext - Rolled back transaction for test在测试类中进行增删改会默认进行回滚原创 2022-03-13 09:24:51 · 935 阅读 · 0 评论 -
JetBrains注解@NotNull/@Nullable/@Contract
JetBrains 的注解库,然后通过在 IDE 里面提示你处理那些可能为 null 的值(编译器没法检查并提示)避免NullPointerException,对于空指针异常,Java 只有 IDE 警告。依赖annotations-java8.jar这个包在任何一个 JetBrains IDE 的安装目录里面都有。1、@TestOnly- 仅测试用@org.jetbrains.annotations.TestOnly用于标记,专门给单元测试服务相关代码的注解。2、@NotNull 和原创 2021-08-23 19:03:11 · 14551 阅读 · 0 评论 -
@Documented 的作用
1. @Documented 的含义@Document 是 java 在生成文档,是否显示注解的开关2. 加和不加有什么区别?使用命令// 生成 java doc 的命令:javadoc -d doc demo.java`// -d <directory> 输出文件的目标目录a. 加上的效果b. 不加的效果可以看到在 public class TerminalController 上面多了一个我们写的注解。这就是 @Documented 的用处。...原创 2022-03-07 21:54:35 · 9289 阅读 · 3 评论