- 博客(59)
- 资源 (2)
- 收藏
- 关注
原创 spring mvc 关于对optional的处理和自定义处理
springmvc4.1+能够支持optional参数,但不支持对象内field的optional。举个例子//对于这种直接在方法上定义的optional的基本类型或者引用类型//比如参数里没有id,或者没有obj,那么spring mvc会设置一个空的Optional对象//咱们可以通过Optional对象进行空判断@GetMapping("/get")public void test1(Optional<String> id, Optional<Object>
2021-10-28 14:51:54
706
原创 nexus批量写入jar包
写一个名为mavenimport.sh的脚本#!/bin/bashwhile getopts ":r:u:p" opt; do case $opt in r) REPO_URL="$OPTARG" ;; u) USERNAME="$OPTARG" ;; p) PASSWORD="$OPTARG" ;; esacdonefind . -type -not -path './maveni
2021-10-20 09:54:13
201
原创 spring和nacos的服务注册
Spring Cloud Commons提供了服务发现、负载平衡和断路器等模式的一个公共抽象层,所有 Spring Cloud 客户端都可以使用该抽象层,独立于实现(例如,通过 Nacos 或 Consul 进行发现)。 得益于Spring Commons的规范,Nacos也实现了该规范,所以开发过程中只需要调用相关接口,主要使用的是 1.DiscoveryClient接口,提供了获取所有服务和所有实例的方法; 2.ServiceRegi...
2021-09-30 16:18:55
284
原创 nacos和gateway服务路由缓存刷新
gateway的服务注册路由默认是第一次启动的时候就加载,有个监听器RouteRefreshListener类,里面定义了一些事件,比如ContextRefreshEvent,HeartbeatEvent等事件,然后都会调用ApplicationEventPubilsher.publishEvent(new RereshRoutesEvent(this));这里应该就是程序启动时进行的路由刷新操作了。然后gateway有一个刷新的endpoint,/actuator/ga...
2021-09-30 16:09:29
2416
2
原创 spring加载机制
// 准备工作,记录下容器的启动时间、标记“已启动”状态、处理配置文件中的占位符prepareRefresh();ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// 设置 BeanFactory 的类加载器,添加几个 BeanPostProcessor,//手动注册几个特殊的 bean, 类加载器,Aware 接口初始化处理类, 事件监听器等等prepareBeanFactory(beanFacto.
2021-09-23 11:27:29
1496
原创 spring和nacos的加载机制
spring-cloud-context提供引导上下文、加密、刷新范围和环境端点等规范和实现,一起来看它的实现,SpringFactoriesLoader类是通过类加载器通过getResources()和getSystemResources()查找所有META-INF/spring.factories的文件,这里面的配置一般是springboot自动配置的配置类,进行初始化并缓存。Environment接口通过继承PropertyResolver包含了profiles和properties两个方面,
2021-09-17 18:01:40
698
原创 spring-boot-maven-plugin的build-image使用
这个插件的作用就是帮你自动生成跨全平台的镜像服务,无需再自己手动写Dockerfile文件了,它是基于buildpacks这个规范,有一系列的生命周期,和maven差不多意思。正常来说,如果你是在互联网的话,它会自动的检测你项目的语言,运行时环境(python、nodejs、jvm)等等,自动从网络下载对应的依赖,一键即可生成,实在是非常好用! 它的一些生命周期和配置可以在https://github.com/paketo-buildpacks这里看到,首先spring-b...
2021-09-17 09:13:53
3424
原创 spring gateway的gatewayFilter和GlobalFilter,执行顺序
gateway有两种filter,第一种gatewayFilter就是在yml配置文件里定义的,比如discovery: locator: enabled: true filters: - StripPrefix=1这里的StripPrefix就是gatewayFilter,是在StripPrefixGatewayFilterFactory里定义的,这种filter我没有看到执行顺序,但是是在GlobalFilter之前执行的Gl
2021-09-13 09:52:19
3228
1
原创 springsecurity的认证鉴权,acl,oauth2.0
主要就是一些拦截器链,@PreAuthorize,@PreFilter,@PostAuthorize和@PostFilter认证AuthenticationManager基于列表的ProviderManager实现,每个处理器都有机会处理验证成功或失败AuthenticationProvider获取适配的处理器鉴权AccessDecisionManager基于投票的 AccessDecisionManager 实现,投票决策管理器AccessDecisionVoter基本..
2021-09-02 15:05:31
534
原创 springmvc关于404的异常处理
------------------------------分割线------------------------------------------今天看了下springmvc关于404处理的问题默认url的话其实springmvc会有很多MappingHandler进行适配(HandlerAdapter),像我们通常的RequestHandlerMappingHandler(通过Controller和RequestMapping注解定义的路径),这时候如果我们没有一个requestMapping
2021-08-30 11:41:54
2107
原创 java9的模块化
到现在了,都快java17了,可是对于java9的module对于正式生产的使用文章少之又少,由于可以分模块打包,在加上graalvm的native image,对于云原生发布支持很好,这里记录下笔记.使用jdeps --class-path [classpath路径] [xxx/xxx/xx(类名路径)] 查看依赖关系module-info.javaopen module { //使用open关键字,可以用于spring对自己的项目的类进行反射requires spring.b..
2021-05-19 15:38:17
648
原创 软件工程
什么是软件危机?主要表现在那些方面?1.随着计算机的广泛应用,软件生产率软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,这一现象称为'软件危机'2.主要表现在(1)超出经费预算(2)项目交付时间拖延(3)不能满足用户要求(4)可维护性差(5)可靠性差软件工程概念及提出目的?软件工程本质以及涉及到的问题?1.软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科;概念的提出是倡导以工程的原理,原则和.
2020-07-27 15:45:28
410
原创 数据库系统原理
关系代数:1.选择(select)运算,用小写sigma(σ)表示例子:找出关系instructor中属于物理系的所有教师σdept_name=”Physics”(instructor)找出工资额大于90000美元的所有教师σsalary>90000(instructor)2.投影(project)运算,用大写pi(π)表示例子:列出所有教师的ID、name和salary,而不关系dept_name。πID, name, salary(instructor)
2020-07-27 15:44:17
2034
原创 git误提交项目工程配置文件
git rm --cached java/.idea/workspace.xml把他移除.gitignore这个文件是用于untracked文件的忽略列表你用add将文件标记为tracked状态 .gitignore就对其无效了
2020-01-15 15:45:46
391
转载 maven 引入私有jar,依赖无法传递
私有jar通过maven安装本地jar,之后,依赖的jar还是在编译的时候找不到除了jar文件外还有一个pom文件,这个额外的pom文件 就是 描述了 jar本身的上级依赖关系...
2019-11-05 12:01:28
1937
原创 mysql和hbase关联查询统计及java8流处理实战
新项目重构,由于数据量太大,采用了mysql存主表和hbase存记录表的方式(使用的phoenix操作hbase,通过mybatis多数据源连接mysql和phoenix,具体实现移步https://blog.csdn.net/qq_31349087/article/details/88535387)现有一个需求,分别按老师,班级,校区的维度查询学员的实操合格率,作业达标率,目前老师,班级...
2019-03-13 16:54:36
851
原创 mybatis连接phoenix操作hbase
直接上代码@Configurationpublic class HBaseConfig { @Primary @Bean @ConfigurationProperties(prefix="spring.datasource.druid.mybatis") public DataSource druidDataSource() { retur...
2019-03-13 16:26:27
3844
5
原创 SpringBoot自定义配置
@Bean@Scope("singleton")public ObjectMapper objectMapper(){ return new ObjectMapper();}声明这个json处理会覆盖掉spring的,导致json解析失败下面是使用自定义的fastjson 自定义springboot配置 @Configuration @ConditionalOnClass({Fast...
2018-04-20 15:06:50
759
原创 springboot2.0 + security eureka客户端注册不上
security: user: name: xxx password: xxx配置了默认用户名和密码然后eureka客户端注册地址也加上了eureka: client: service-url: defaultZone: http://xxx:xxx@localhost:8761/eureka/结果启动注册的时候注册不了,说是403错误.然后...
2018-04-13 17:46:31
3201
原创 java 桌面应用开发相关的类
java开发主要有awt,swing,javafx,笔记记录如下主要几个跟桌面相关的桌面Robot类,模拟事件DeskTop类,可以打开默认软件等//URI指定网页的地址 desktop.browse(new URI("https://blog.csdn.net/qq_31349087")); 右下角工具栏图标代码SystemTray tray = SystemTray.getSystemT...
2018-04-10 22:11:41
651
原创 zuul 自定义异常处理
两种方式1.自定义error错误页面/** * 自定义error错误页面 * @author zhiguang */@RestControllerpublic class ErrorHandlerController implements ErrorController { /** * 出异常后进入该方法,交由下面的方法处理 */ @Override...
2018-03-19 17:07:15
10701
2
原创 mysql 数据库 递归查询语句
SELECT * FROM ( SELECT @r AS id, (SELECT @r := father FROM user_relainfo where id = @r) AS father FROM (SELECT @r := 455) vars, user_relainfo h WHERE @r <> 409) T1 SELECT...
2018-03-14 16:12:22
2138
转载 git 合并两个项目
先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,,最新的版本需要添加--allow-unrelated-histories假如我们的源是origin,分支是master,那么我们 需要这样写git pull or
2018-02-03 15:30:54
7343
1
原创 xshell5免费版本下载
http://www.netsarang.com/download/free_license.html填个邮箱就可以下载了
2018-02-03 09:21:13
29022
1
转载 java 模块化
OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和
2018-01-13 09:54:35
1368
原创 shiro 登录 过滤器 返回json
/** * 表示访问拒绝时是否自己处理,如果返回true表示自己不处理且继续拦截器链执行,返回false表示自己已经处理了(比如重定向到另一个页面) * @param request * @param response * @return * @throws Exception */ @Override protected
2018-01-11 11:01:33
5530
原创 shiro学习笔记 过滤器 shiro 表单 验证码 登录
自己自定义实现了一个验证码表单过滤器,基于FormAuthenticationFilter代码如下:package cn.ddsxy.ddlx.shiro;import cn.ddsxy.ddlx.util.CaptchaUtil;import org.apache.shiro.authc.AuthenticationException;import org.apache.shir
2018-01-09 18:49:08
2803
原创 idea 实用技能 快捷键 问题处理记录
idea项目先使用svn然后又用到了git,怎么在切换回svn?答:在.idea项目配置文件夹里的vcs.xml修改,把git注释掉 --> idea怎么实现鼠标左键+ctrl进入实现类答:setting->keymap->Main Menu > Navigate > Go to Declaration(接口) /Go to Implementa
2018-01-09 10:01:13
441
1
转载 springmvc 整合 shiro 无法访问控制器 404问题
--> 这是springmvc.xml的配置,applicationContext.xml的配置如下 <bean id="formAuthenticationFilter" class="org.apache.shiro.web.filter.authc.FormAuthenticationFilter
2018-01-09 09:34:28
4889
原创 spring 和 springmvc 容器关系 父子关系
笔记,一般项目都会用到spring和springmvc,然而这两个却不是在一个容器,众所周知,spring提供容器可以从容器里获取对象.spring和springmvc是父子容器关系,springmvc可以获取spring容器里的对象,反之则获取不到.现遇到两个实际情况,使用aop的时候我模拟切面类在service层,注入点在controller层,我spring只扫描了service层,
2018-01-08 18:25:00
607
转载 Spring AOP 实现原理----AspectJ与CGLIB介绍
简介: AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态
2018-01-08 17:29:33
472
原创 springmvc 视图解析器 原理 返回根据请求返回xml或者json
之前公司的项目能什么都不配置就实现自动返回xml或者json(浏览器直接打开连接返回xml,ajax提交返回json),今天自己搭的框架也想实现这个效果,总结如下:如果想实现什么都不配置需要导入以下两个jar com.fasterxml.jackson.core jackson-databind ${jackson.v
2018-01-08 14:23:03
3222
原创 mysql in() 子查询 优化
mysql in() 子查询 优化in 如果里面是一个子查询是不会使用索引的比如 select * from user where id in( select id form user)优化select * from user u1 left join (select id from user) u2 on u1.id = u2.id这样就能使用索引
2017-11-18 11:08:53
1927
原创 spring事务 方法调用内部方法 事务不生效
@Autowired private ApplicationContext context;在类里加入上下文 @PostConstruct // 初始化方法 private void setSelf() { //从上下文获取代理对象(如果通过proxtSelf=this是不对的,this是目标对象) //此种方法不适合于prototype Bean,因为每次g
2017-10-19 16:38:12
6159
原创 mybatis错误 Invalid bound statement (not found)
在idea创建gradle项目,出现Invalid bound statement (not found)错误一看打包的jar,原来mapper.xml配置文件没有一起打包于是把mapper.xml放到了resources目录下,目录结构和java包结构一致可以了
2017-08-12 11:06:23
409
原创 angularjs 跳转链接 路由 传参数 微信分享 问题处理
公司微信端项目开发,用到了angularjs,跳转链接传参的时候有点坑,记录如下比如 http://example.com/ctrl?param1=1#/index?param2=2第一个param1在跳转链接和路由的时候不会消失,可以传到服务器端第二个param2在跳转链接和路由的时候会消失,不会传到服务端参数可以在angular里用$location.search()方法获取
2017-06-24 12:41:17
2141
原创 idea创建gradle项目失败 运行环境上下文不一致导致的错误
最近有空就了解下gradle构建工具也正好熟悉使用idea,之前一直都是eclipse,觉得这是趋势,业余先熟练起来用idea创建gradle项目自己配置的java_home都是指向的jdkbuild一下说是上下文不一致,指向的是jre搞了两三天一直琢磨,不知道哪配错了,但是知道是配置出了问题直接解决方案了,idea可以切换启动jdk,因为idea也是java写的,
2017-06-16 22:47:17
2966
4
原创 docker入门安装
公司加班连续加了三个多月,赶项目进度,现在终于到头了.有空就来了解下新技术docker安装docker在window10上国外的网站太慢了还下载不了https://get.daocloud.io/ 这个可以下载docker工具国内docker镜像仓库有网易蜂巢的https://c.163.com安装之后打不开,docker提示内容不足,解决方法:
2017-05-24 23:41:33
239
原创 redis 命令
以下是笔者学习redis的时候记下的一些命令-- Stringset {key} {value} 设置keyvalueget {key} 根据key获取valueincr {key} 自增decr {key} 自减incrby {key} {num} 自增自定义的数值decrby {key} {num} 自减自定义的数值-- Hashhset {key}
2017-05-24 22:11:49
1091
mysql 安装需要的 Visual Studio 2013 Redistributable
2018-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人