
java框架
文章平均质量分 59
SpringBoot、SpringCloud。。。。。。
小楼夜听雨dayrain
只要静下心来,世界上没有学不会的知识
展开
-
SpringBoot 整合多数据源
mybatis提供的@MapperScan注解中有一个属性叫做sqlSessionTemplateRef,通过给这个属性提供不同的模板实现,可以在同一个项目中使用多数据源。不过这种方式只能以包的粒度划分,最终的效果大概是:对com.XX.A包使用1号数据源,对com.XX.B包使用2号数据源。如果需要更精细化的控制,可以考虑使用第三方框架,但不在本文涉及范围内。GitHub - baomidou/dynamic-datasource-spring-boot-starter: dynamic datasour原创 2022-06-22 19:27:16 · 1833 阅读 · 0 评论 -
SpringBoot获取当前环境
一个项目中出现多个环境的配置文件在代码里我们可以通过下面的方法获取当前的环境。首先,为了拓展性,我们需要定义一个枚举,用做环境的区分public enum EnvEnum { DEV,PROD,TEST}其次,定义一个Sping工具类,获取上下文中的环境,做一个匹配。@Componentpublic class SpringUtils implements ApplicationContextAware { private static Application原创 2021-09-03 09:21:03 · 2877 阅读 · 0 评论 -
结合实际项目分析maven pom.xml文件中各个标签的作用
maven的pom文件有各种标签,有的比较常用,需要掌握,有的很少遇到,则不一定需要掌握。所以找了个规模较大的开源项目来分析一下有哪些标签比较常用,以及他们的具体含义。加上了个人的注释后:<?xml version="1.0" encoding="UTF-8"?><!-- ~ Copyright 2018-2020 Pnoker. All Rights Reserved. ~ ~ Licensed under the Apache License, Versio原创 2020-12-11 17:49:52 · 1584 阅读 · 0 评论 -
SpringBoot整合Swagger2实战
说明本文代码取自实际项目,确保可用。导入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>原创 2020-12-15 11:59:14 · 234 阅读 · 0 评论 -
maven多模块项目中,dependencyManagement引发的疑难杂症
起因搭建好多模块的项目后,在父模块和子模块都添加了依赖,但是侧边栏依然没有这个依赖并没有生效。其实这不是maven的锅,还是自己的锅。当然编译器(idea别看了,就是你)也有锅。其实理解了下面三个点,这个问题也就解决了。dependencyManagementdependecyManagement通常加在父项目上,用于依赖版本管理,但他只是定义依赖的版本,并不会真正的引入依赖。子模块需要用到某个依赖的时候,就不需要再加版本了,这样一来就统一了子模块的依赖版本。SpringBo原创 2020-12-11 21:01:14 · 8577 阅读 · 5 评论 -
Maven修改本地仓库和镜像
工作以来,一直在用maven,也出现过一些比较奇怪的问题。虽然只要花点时间,大部分问题都解决,但总感觉不踏实,所以稍微总结一下。第一篇:当前博客第二篇:结合具体案例分析:https://blog.youkuaiyun.com/qq_37855749/article/details/111048657第三篇:以后时间补上,总结一下maven的构建流程以及基本命令。为什么需要maven?需求推动着技术的发展,maven的出现必然是为了解决一些问题。至于这些问题是什么 ,我想做过传统项目的人应该都原创 2020-12-11 17:53:02 · 802 阅读 · 0 评论 -
Mybatis Provider注解实现批量插入
需求借助mybatis 的provider实现一个比较通用的,批量插入数据接口。Mapper接口第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T>原创 2021-08-23 15:36:32 · 2121 阅读 · 2 评论 -
SpringBoot如何批量注入Bean到Spring容器中?
目录需求实现项目结构待注入类ClassScanner工具类ListenerScan注解BeanDefinitionRegister配置文件启动类结果需求标题有些许拗口,容在下解释一二。简单来说,就是实现mybatis框架中的MapperScan功能(接口扫描与代理对象注册)。详细来说:在Spring环境中,我们常通过XML文件 或者 @Controller、@Component、@Service、@Bean等注解进行bean的注册。这么做比较简原创 2021-08-14 11:45:55 · 3025 阅读 · 0 评论 -
ElasticSearch第一篇 简介与安装
简介ElasticSearch是基于Lucene库实现的一个全文搜索引擎,可以快速的存储、搜集和分析海量数据。ElasticSearch具有如下特点:1、分布式,索引可以被分片,每个分片有0个或者多个副本,每个节点托管一个或者多个分片。2、可拓展,具有接近实时的搜索,支持多租户。3、自动完成平衡和路由。4、有一个特性被称为“网关”,在服务器崩溃的时候可以从网关恢复。5、支持实时GET请求,可以作为NOSQL数据存储,但是不支持分布式事务。6、虽然ES是用Java开发的,但官方原创 2021-02-03 18:07:33 · 146 阅读 · 0 评论 -
SpringBoot下载Excel文件时,报错文件损坏
我把模板文件放在了resources目录下maven插件打包项目的时候,默认会压缩resources目录下的文件。服务器读取的文件流来自于压缩后的文件,而返回给浏览器时,浏览器把他当作正常的文件解析,自然不能得到正确的结果。解决方案:配置一下maven插件,打包的时候不要压缩模板文件,排除拓展名为xlsx的文件。 <plugin> <groupId>org.apache.maven.plugins<原创 2021-05-08 17:08:19 · 1192 阅读 · 1 评论 -
mybatis provider:SQL类源码分析(SQL语句构建器)
SQL类是mybatis官方提供的一个sql构建器,官网上也有一些具体的使用案例:https://mybatis.org/mybatis-3/zh/statement-builders.htmlpublic String listUserWithRole(UserInfoDto userInfoDto) { return new SQL(){ { SELECT("tui.id, tui.name, tui.age, tui.add原创 2021-04-21 10:02:49 · 598 阅读 · 0 评论 -
mybatis 用注解实现动态sql与连表查询(provider)
前言以前大家在用mybatis的时候比较喜欢用mapper(xml),确实写sql比较方便。但是开发过程中,在xml与代码之间跳来跳去实在太繁琐了,而且添加或者删除字段的成本也比较大。后面mybatis plus出现了,单表操作确实比较方便,但是遇到多表联查的时候,就比较难受了。下面看看mybatis官方提供的注解实现方式。注解先写一个简单的查询,似乎比较轻松@Mapperpublic interface UserDao { @Select("select id, na原创 2021-04-20 21:00:22 · 2656 阅读 · 0 评论 -
如何部署最新版dubbo admin
官方对dubbo admin(dubbo管理平台)来了一波重构,目前仍然是开发版本。中文文档说明:https://github.com/apache/dubbo-admin/blob/develop/README_ZH.md部署步骤如下:1、将项目clone到本地,大概是这样的目录。2、构建项目进入主目录,就是上面截图的位置mvn clean package3、配置文件运行服务前,需要确保注册中心已经开启(zookeeper或者nacos),其次需要关注一下端口,比如z原创 2021-01-27 11:17:46 · 398 阅读 · 1 评论 -
Windows下安装最新版的Zookeeper
安装过程下载地址https://zookeeper.apache.org/releases.html#download当前版本:3.6.2解压文件需要解压两层,解压后的目录应该是这样的。修改配置文件进入conf目录将zoo_sample.cfg拷贝一份,改名为zoo.cfg修改zoo.cfg的部分参数可以在主目录建一个data文件,存放快照。最后的主目录如下:进入bin目录,命令输入zkServer.cmd启动服务,如果运行成功:原创 2021-01-27 10:37:04 · 164 阅读 · 0 评论 -
SpringSecurity如何使用注解控制权限
一般的系统在权限设计上,都会分为角色、权限(RDBC),复杂一点的可能会有用户组、组织之类的概念。用户的权限是写死的,对应于后台具体的接口(资源),是没办法改变的,一般不对用户开放修改权限。管理员用户可以通过给角色分配权限的方式,来实现访问控制。所以当我们写过滤器,或者用一些安全框架时(Shiro,Spring Security),也需要将可变的角色转化为不可变的权限,注入到框架中。具体的可以看我之前写的一篇(Spring Security整合jwt完整版):https://blog.csd原创 2021-01-28 19:58:50 · 1596 阅读 · 0 评论 -
SpringSecurity整合jwt权限认证全流程解析
目录JWT代码依赖jwt工具类实体类和Service配置类过滤器异常处理流程分析总体分析登录校验过滤器分析权限认证过滤器分析配置文件JWT本文代码截取自实际项目。jwt(Json Web Token),一个token,令牌。简单流程:用户登录成功后,后端返回一个token,也就是颁发给用户一个凭证。之后每一次访问,前端都需要携带这个token,后端通过token来解析出当前访问对象。优点1、一定程度上解放了后端,后端不需要.原创 2020-12-16 20:39:43 · 3164 阅读 · 5 评论 -
SpringSecurity报错authenticationManager must be specified
在重写类UsernamePasswordAuthenticationFilter时抛出了这个异常,字面上理解是authenticationManager不明确,所以要显示的注入。有两个地方要改下首先要在配置文件重写authenticationManager @Bean @Override protected AuthenticationManager authenticationManager() throws Exception { return s原创 2020-12-15 09:09:45 · 13044 阅读 · 5 评论 -
多模块项目引入SpringSecurity后一直报404
如图所示,在多模块应用中,1引用2后所有访问路径报错404在确保security配置正确的情况下,检查一下1的启动类(主动引入security的那个模块)这种写法是错误的,虽然扫描到了security模块下的组件,但是会覆盖原本自己模块下的组件。正确的做法如下:...原创 2020-12-15 08:58:21 · 960 阅读 · 1 评论 -
nacos启动失败,报错java.io.IOException: java.lang.IllegalArgumentException: db.num is null
最新的nacos默认是以集群的方式启动的集群方式启动依赖数据库,所以会报错 db.num is null。方案一:单机启动找到bin目录下的startup.cmd, 更改启动模式。将set MODE="cluster"改成set MODE="standalone"方案二:集群环境如果是集群环境,需要导入sql,建库建表,改配置文件sql和配置文件都在conf目录下运行sql,去掉配置文件的注解,改为自己的参数即可。...原创 2020-12-04 16:51:16 · 2316 阅读 · 0 评论 -
SpringBoot整合MongoDB,实现操作记录的存取
目录环境mongo安装整合SpringBootmaven依赖实现思路目录结构自定义注解AOPmongo服务实体类两个控制器配置类启动运行MongoDB测试类运行结果总结环境jdk1.8mongoDB 4.4.2mongo环境CentOS8mongo安装官网地址:https://www.mongodb.com/try/download/community复制链接(Copy Link)打开linux终端,进入 /原创 2020-12-03 20:09:24 · 1309 阅读 · 0 评论