
SpringBoot
文章平均质量分 58
月未明
理想、目标、学习、进步
展开
-
WARN: spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed
使用springboot jpa,项目启动的时候有个warn的log:2019-04-03 14:05:59: WARN [main] o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration$JpaWebMvcConfiguration JpaBaseConfiguration.java:234 - spring.jpa.open-in-view...原创 2019-04-03 14:15:26 · 17392 阅读 · 5 评论 -
jooq事物处理
jooq的事物直接用spring的transactional是没用的(至少我没弄好),现在给出spring结合jooq的一种方案、主要代码: spring的配置import org.jooq.Transaction;import org.jooq.TransactionContext;import org.jooq.TransactionProvider;import org.s...原创 2018-05-31 19:39:38 · 3303 阅读 · 0 评论 -
Jooq动态切换数据库
上一章简单的说了下jooq自动生成代码的功能,这里同样简单的说下jooq自动切换数据库。一般一个项目有多个数据库(database)的时候会用到这个功能。主要代码: private static final String DEFAULT_DB = "jooqdb"; private DataSource dataSource; public DSLContex...原创 2018-05-31 16:27:41 · 2433 阅读 · 0 评论 -
Jooq自动生成代码
这里只说下自动生成代码的功能和一个我踩的坑。最初的项目结构: 我是用的springboot 框架,主要相关代码都在pom中:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star原创 2018-05-30 22:34:32 · 5534 阅读 · 2 评论 -
Bean name用法
Spring的bean中有name属性,可以用来区分两个相同(部分属性不一样)的bean。最近我在做influxdb多数据源的时候用到,所以这里已influxdb为示例,仅供参考。看代码:@Bean(name = "influx1") public InfluxDB influxDB1(){ InfluxDB influxDB = InfluxDBFacto...原创 2018-04-19 11:37:02 · 22586 阅读 · 2 评论 -
InfluxDB 多数据库
一般来说InfluxDB多台主机的可能性很小,主要还是同一台主机不同数据库(database),这里介绍一种方式能够动态配置数据库,也可以设置不同主机等信息。先看配置文件:influxdb: host1: http://localhost:8086 host2: http://localhost:8086 database1: test1 database2: test...原创 2018-04-18 18:07:54 · 2058 阅读 · 0 评论 -
Mybatis同时支持多种数据库(oracle 和MySQL)
这里说下对多种数据库的支持,不是多个数据源。这里要用到mybatis的databaseId。如下: <select id="isExist" resultType="Boolean" databaseId="mysql"> SELECT EXISTS(SELECT 1 FROM `${db}`.test_table WHER原创 2018-03-09 21:53:56 · 48804 阅读 · 16 评论 -
Shiro使@RequestMapping失效,调用404异常
使用springboot集成shiro的时候总会有很多坑,现在又遇到一个。shiro集成进来后,调用API直接404异常。 部分代码如下: @GetMapping("/user") @RequiresPermissions(value={"user:add","resource:delete"},logical = Logical.OR) public Use原创 2017-12-02 21:07:22 · 16077 阅读 · 10 评论 -
项目启动,main函数之前的代码执行两次 restartedMain
我的应用场景是在项目启动之前做一些验证,如果验证通过则正常启动项目,否则不允许启动。 代码如下: public class CMSApplication { public static void main(String[] args) throws Exception{ VerifyBeforeStartUp.verifyBeforeStartUp();原创 2017-12-28 18:29:36 · 11799 阅读 · 7 评论 -
使用spring-boot-starter-actuator http://localhost:8080/info无法获取到相应信息
spring-boot-starter-actuator是用来对项目监控用的,可有时候在配置文件中配置相应信息后,在页面调用获取不到需要的信息。也可能调用http://localhost:8080/health或http://localhost:8080/info的时候都不能正常返回信息,现在用由于我问题已经解决,现在用info来重现问题。在配置文件中配置一下信息:info: app:原创 2017-11-26 00:35:30 · 10149 阅读 · 0 评论 -
Spring Boot 动态切换数据源二——负载均衡
如果仅仅是master-slave模式可以参考我前边的文章Spring Boot HikariCP集成多数据源。 这篇文章也是在那个基础上修改的,上篇文章中的多数据源是有限制的,哪条sql使用哪个数据库必须在代码中写死。现在针对这点做优化,真正的集成多个数据源,且实现简单的负载均衡。相关主要代码 先看配置文件slave: hosts: slave1,slave2hikar...原创 2018-08-27 19:20:58 · 7232 阅读 · 3 评论 -
Spring Boot 动态切换数据源三——动态获取配置文件中的配置信息
这里是接上篇文章 Spring Boot 动态切换数据源(负载均衡) 留下的问题,配置文件中数据库的信息更改后代码中能够动态获取。所以这里重点说下优化后的内容。先看配置文件slave: hosts: slave1,slave2hikari: - master: jdbc-url: jdbc:mysql://master-host:3306/mydb?useUnic...原创 2018-08-28 12:05:36 · 6179 阅读 · 0 评论 -
Spring Boot动态切换数据源插件介绍
这里介绍的是我刚写的一个动态切换数据源的插件的介绍,Git地址rhettpang/dynamic-datasource。简介本项目用来动态切换多个数据源,原则上用户只要引入本项目,在相关配置文件中加入相关数据源的配置即可。目前是对slave数据源进行动态切换。版本依赖Spring Boot 1.5.0+HikariCP 2.5.1 +配置信息如下slave: ho...原创 2018-08-29 17:10:35 · 2415 阅读 · 0 评论 -
logback max size不生效?看看是不是scan scanPeriod的问题
对于日志的设置网上有很多资料,说的基本都一样,也都是对的。今天突然想到要测试下,看看这些设置是否有效。logback配置信息如下:<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="5 minutes"> <springProperty scop="c...原创 2019-04-03 20:42:22 · 3712 阅读 · 0 评论 -
Java9 module+SpingBoot+Maven
关于Java9的模块化文档真的很少,网上也没有搜到有推荐使用Java9的Module开发的。但是从JDK9开始其构造和JDK8有了本质的区别,JDK8的时候其结构是按照package来区分,但是JDK9采用的是Module。这些都不是本文要说的,以后再单独列篇文章说这块。这里给出一个简单的Java9 module+SpingBoot+Maven的Demo仅供大家参考,有不足的地方还请指正。环...原创 2018-10-31 18:53:25 · 5012 阅读 · 1 评论 -
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended错误
看下完整的异常2018-10-19 20:13:34: INFO [http-nio-8080-exec-10] o.s.b.f.x.XmlBeanDefinitionReader XmlBeanDefinitionReader.java:317 - Loading XML bean definitions from class path resource [org/springframewor...原创 2018-10-26 17:24:19 · 8860 阅读 · 0 评论 -
指定logbak.xml位置
设置logging: config: classpath:logback.xml这里是用来指定生效的logback配置文件的,其实个人感觉还logback.xml放到jar包外使用的。 我自己也是有这个需求,将logback.xml放到jar外,方便随意修改配置。但是放到jar包外的时候建议使用file别用classpath来指定配置文件的位置,如下logging: ...原创 2018-09-13 17:17:18 · 2501 阅读 · 2 评论 -
Mybatis mapper配置文件放jar包外
springboot使用mybatis的时候有注解和xml两种方式,如果使用xml还可以将配置文件放到jar包外面,不用重新编译直接修改xml中的内容。mybatis: mapper-locations: classpath:mapper/*.xml一般的配置信息如上,这里给出了自己制定xml的路径的方法,所以只要在jar包外面设定application的配置文件就可以动态指定配置文件...原创 2018-09-13 14:08:45 · 6159 阅读 · 0 评论 -
Spring boot Caffeine缓存(一)——CacheManager与配置文件
spring5(springboot2)开始用Caffeine取代guava,至于其性能对比可以参考Caffeine给的测试结果各缓存性能对比。 这里贴出一个读写的对比 Caffeine在springboot中集成非常简单,可以通过配置文件来设置spring: cache: cache-names: outLimit,notOutLimit caffeine: ...原创 2018-09-03 20:12:13 · 50597 阅读 · 12 评论 -
Spring boot Caffeine缓存(三)——使用注解
注解在Spring中的应用很广泛,几乎成为了其标志,这里说下使用注解来集成缓存。 cache方面的注解主要有以下5个@Cacheable 触发缓存入口(这里一般放在创建和获取的方法上)@CacheEvict 触发缓存的eviction(用于删除的方法上)@CachePut 更新缓存且不影响方法执行(用于修改的方法上,该注解下的方法始终会被执行)@Caching 将多个缓存组合在一个...原创 2018-09-05 19:50:08 · 13338 阅读 · 0 评论 -
Spring boot Caffeine缓存(二)——Cache、LoadingCache
前边文章主要介绍了下Caffeine以及CacheManager,这里说下Caffeine的其它配置及用法。LoadingCacheLoadingCache直接定义一个缓存,在项目中可以直接拿来存取数据,同时还可以引入CacheLoad加载数据。 LoadingCache是个接口,继承了Cache...原创 2018-09-05 10:35:15 · 19109 阅读 · 0 评论 -
RestTemplate的几种实现
RestTemplate是spring的一个rest客户端,在spring-web这个包下,spring boot的依赖如下 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;s原创 2018-08-25 23:47:58 · 43152 阅读 · 9 评论 -
Springboot 集成Shiro自定义Filter
网上自定义Filter的实现很多,这里我提供一种Springboot在代码中的实现。Shiro提供的Filter我这里不一一介绍了,一般基于web会话的都是使用authc(这是FormAuthenticationFilter)。根据我无状态的登陆需求,选择了AccessControlFilter,网上也有说这个是最被广泛使用的,具体还是看自己需求吧。Filter代码:/** * @author C原创 2017-11-25 19:32:25 · 19140 阅读 · 3 评论 -
Springboot多realm集成,无ini文件,无xml配置
网上shiro的集成案例在多realm这块基本都是基于ini配置文件的,或者部分基于xml配置。本人使用springboot框架,这种技术本身出发点就是标榜少配置文件或0配置(pom除外)。所以这里我把所有配置相关都集中在代码中处理。现在列出部分代码段,完整代码可以从我前面文章中获取:Spring Boot集成无状态Shiro–内容详细介绍。两个realm realm设置: @Bean原创 2017-11-25 15:41:47 · 4544 阅读 · 4 评论 -
Spring Boot集成无状态Shiro
最近这些天一直在用Spring Boot集成Shiro,由于我们要做的是RESTful调用,所以只能使用无状态的,不能使用会话机制。用户每次过来请求的时候都会带着用户名和签名,每次都要对其做验证(登录)。网上很多参考资料都是基于spring mvc来做的,配置之类的基本放在xml文件或者ini文件中,尤其是多realm的时候,直接都是放到ini文件中(少部分在xml中配置),还没找到直接在代码中设置原创 2017-11-22 23:01:36 · 4014 阅读 · 4 评论 -
spring对接InfluxDB(一)--创建数据库和数据写入
最近做的项目涉及到InfluxDB,相对来说,这算是个稍微偏门些的了吧,毕竟时序数据库很多朋友都不会接触。这里记录下与spring的对接,以便刚入手的朋友参考。参照官网上数据写入这块,首先是创建数据库(database),这里默认已经安装好了Influx,这个比较简单。官网给出的Http示例都是curl的:curl -i -XPOST http://localhost:8086/query --da原创 2017-07-19 16:28:13 · 17902 阅读 · 4 评论 -
Spring Boot集成Redis
去年第一次真正接触Redis的时候是做短信的验证码功能,这里主要是用到其时间的有效性,其结构有三个字段:key,value,expire。以expire中设置的时间来使存储的验证码失效。当时也有集成一般数据的新增、删除和查询功能,这时key为String(符合redis中虽有key的标准),value为Object,所以理论上来说可以满足我所有需要处理的数据通过字符串的key-value存储方式存到原创 2017-06-02 14:31:34 · 3709 阅读 · 0 评论 -
springboot中rabbitmq集成——多项目
这里以两个项目为例,一个消息的生产者,一个消息的消费者,接着上篇单项目的讲。目录结构: rabbitmq作为消息生产者,发送消息。rabbitmqreceiver消息的接收者,消费消息。 发送字符串的时候在两个项目之间是没问题的,大家可以自己测试。发送端代码: public void run(String... args) throws Exception { User us原创 2017-04-08 22:32:49 · 4523 阅读 · 0 评论 -
springboot中rabbitmq集成——单项目
这两天看了下activemq和rabbitmq,现在跟大家分享下rabbitmq在springboot中的集成及使用。依赖dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-amqpartifactId>dependency>具体代码:@Spri原创 2017-04-08 18:53:57 · 1248 阅读 · 0 评论 -
Spring Boot学习一Hello World!
今天突然觉得,使用springboot一年多了,但是springboot提供的很多东西都不知道,往往在网上查了好久之后最终的解决方案还是在spring的官网上springboot的文档中找到的,所以打算系统的学习下springboot的官方文档。看下当前的官方版本: release版最新的是1.5.6,2.0的是M3,文档中是以2.0.0为示例介绍的,所以这里也使用2.0.0.开发环境要求: 这原创 2017-08-31 22:47:04 · 1915 阅读 · 0 评论 -
Spring Boot学习--logback与properties配置文件
Spring Boot支持多种log插件,这里说的是logback。准确说来,这次要介绍的有两点:profiles与logback从logback中获取配置文件中的信息有一点需要先说明,这里先要把logback.xml的名字改为logback-spring.xml。 官网上明确说了,如果不改名字,使用logging.config会出现一些问题,所以我们直接把名字改了比较好。profiles与原创 2017-09-16 19:18:24 · 12121 阅读 · 8 评论 -
Spring Boot学习--从配置文件中获取随机数
废话少说,直入正题,从配置文件中获取符合规则的随机数。在配置文件中直接加入以下代码,我放到application.properties中的:my.secret=${random.value}my.number=${random.int}my.bignumber=${random.long}my.uuid=${random.uuid}my.number.less.than.ten=${rand原创 2017-09-05 16:30:35 · 3971 阅读 · 0 评论 -
Spring Boot学习--资源配置
这部分内容主要对应官网文档的第24部分Externalized Configuration,我也不知道怎么来准确翻译这个东西。这块涉及到的是配置文件中的环境变量的相关内容。按照官方的意思是,Spring Boot提供了多种换取环境变量或者配置信息的方式。如properties 文件YAML文件,环境变量和客户端指令等。你可以通过@Value注解和@ConfigurationProperties来获取原创 2017-09-05 15:32:40 · 587 阅读 · 0 评论 -
Spring Boot学习--项目启动时执行特定方法
Springboot给我们提供了两种“开机启动”某些方法的方式:ApplicationRunner和CommandLineRunner。这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法。我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的。CommandLineRunner接口原创 2017-09-03 22:09:41 · 59230 阅读 · 8 评论 -
spring对接InfluxDB(二)--数据获取之单条查询
这里简单介绍下从代码中获取InfluxDB中数据的方法。官网示例:curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'"pr原创 2017-07-28 14:18:01 · 4074 阅读 · 5 评论 -
spring对接InfluxDB(三)--数据获取之多条语句
Influx提供多条语句的同时查询(Multiple queries):curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west';原创 2017-07-28 14:20:14 · 6253 阅读 · 0 评论 -
Springboot引用外部配置文件
现在的项目越来越多的都是打包成jar运行尤其是springboot项目,这时候配置文件如果一直放在项目中,每次进行简单的修改时总会有些不方便,这里我们看下打包成jar之后,从外部配置文件中读取配置信息。首先想到的是通过java代码读取外边某个路径下的文件,但是开始做之后发现好多问题。后来又找其它解决方案,正好搜到一种简单的解决方式:java -jar demo.jar --Dspring.confi原创 2017-08-25 17:24:22 · 92825 阅读 · 26 评论 -
Spring Boot集成无状态Shiro--内容详细介绍
这里对昨天的shiro项目做个说明,整个项目主要参考的是GitHub的一个项目,他是基于session会话的,有集成redis,如果需要的话大家可以参考下:https://github.com/lovelyCoder/springboot-shiro。 我的项目GitHub地址:https://github.com/rhettpang/Springboot-Shiro。现在说下我的无状态的shir原创 2017-11-23 22:23:22 · 9280 阅读 · 11 评论 -
Idea 注解错误could not autowire no beans of...plicationEventMulticaster not initialized
could not autowire no beans of xx这个问题是经常遇到,一般加个@Compent之类的就可以解决。但是有些时候可能不那么好调试。网上有说好多种情况,不影响程序运行的就不说了,更改报错的级别始终是旁门左道。缺包或包冲突的也容易解决。idea有个显示jar依赖关系的图。 快捷键是ctr+alt+shift+u,不同版本图标可能不一样。现在说下我autowire问题。我的U原创 2017-11-24 16:39:42 · 22812 阅读 · 2 评论 -
Spring Boot HikariCP 一 ——集成多数据源
其实这里介绍的东西主要是参考的另外一篇文章,数据库读写分离的。参考文章就把链接贴出来,里面有那位的代码,简单明了https://gitee.com/comven/dynamic-datasource-demo?spm=5176.100239.blogcont188540.13.iARYDh。读写分离的功能我已经使用replication集成好了,因为我们需要单独设置每个数据源的链接属性,而且使用的还原创 2017-12-19 20:20:34 · 22678 阅读 · 3 评论