Java Web
文章平均质量分 55
程序员beige
专注java领域技术分享,包括分布式,中间件,微服务,架构设计等,感谢各位关注,有技术问题可以交流交流哦
展开
-
Java导出Excel数据错乱
数据导出Excel发生错乱。运营在测试导出的表格是否有数据重复时,发现导出的Excel数据和页面查询的数据对不上。具体操作为,先根据商品ID筛选,未发现重复。再根据商品名称筛选,有重复项,以为有问题,就拿表格中筛选出来的商品名称重复的这行的商品ID去系统中查,发现查到的数据和表格中这一行完全对不上。于是以为是线上问题,反馈给技术排查。如下图为原始数据,当然这是举例,数据量很少,实际线上到处好几万。特意设置了两组C列重复。排查了一天,测试也复现不出来。最后我想到,可能是Excel筛选排序之类的导致商品名称原创 2022-06-14 09:56:06 · 1822 阅读 · 0 评论 -
Spring整合Apollo
Apollo的介绍和搭建参考:2020年了还不知道配置中心?pom文件引入Apollo的依赖<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.2.0</version></dependency>然后在META-IN原创 2022-04-08 18:49:57 · 1688 阅读 · 0 评论 -
idea中Tomcat启动卡着原因之一
先揭晓一下原因:版本问题。 我用的是Tomcat8.5.59,换成的8.5.4就好了。具体是因为最近从别的团队接过来一个写好的已经上线运行的项目。我本地放在idea里使用Tomcat运行时,一直卡着不动。只打印了一些日志,项目相关的日志没有打印,最后的日志是,Catania start …in…类似这样的,就一直不动了,然后访问服务资源也是404。经过一翻搜索,方法都不适用。尝试打成war包,放到Tomcat里运行,果然没问题,正常运行。至此,一头雾水。。。。后来想是不是Tomcat版本的问题,原创 2021-11-11 14:23:52 · 2563 阅读 · 0 评论 -
Tomcat下载地址历史版本旧版本所有版本
Tomcat下载地址,历史版本,旧版本,所有版本下载地址原创 2021-11-11 13:01:05 · 731 阅读 · 0 评论 -
...jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server问题原因之一
开发需求时反复启动Tomcat,某次在idea中启动时突然报错com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection去网上百度,很多都是说版本问题,我没有换connectors的版本,也没用拉别人提交的代码,突然就报错了。我尝试修改驱动的版本,也是不行,重新编译,清理缓存,删除target都是不行。搞了两个小时还不是OK,于是我就想着把项目打成war包,放到Tom原创 2021-08-03 15:40:26 · 3792 阅读 · 0 评论 -
Tomcat的docker容器使用数据卷方便部署和查看日志
宿主机的/wenbei/docker/v/logs目录与Tomcat容器的/usr/local/tomcat/logs目录映射,Tomcat产生的日志可以实时同步到宿主机的这个目录,方便我们查看日志。宿主机的/wenbei/docker/v/myapp目录与Tomcat容器的/usr/local/tomcat/webapps目录映射,我们可以把项目的war包直接丢到宿主机的这个目录下,然后重启容器即可完成部署。docker run -it \--name tomcat \-p 7777:8080 \原创 2021-06-17 14:24:46 · 511 阅读 · 0 评论 -
tomcat启动报错问题解决
今天自己搭建ssm框架放到Tomcat中运行时,遇到了几个错误,在这里记录一下1、 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.Lifecyc1.1报错信息信息: Starting service Catalina2020-7-17 9:15:42 org.apache.catalina.core.StandardEngine startInternal信息: Startin原创 2021-06-15 17:03:14 · 1000 阅读 · 0 评论 -
浅析动态切换数据源的原理(接上篇)
首发于公众号编程大道上一篇我们实现了多数据源动态切换的功能,这次我们来看一下是如何实现的。没看过上一篇的点击这里我们在DynamicDataSourceConfig中配置了所有数据源信息,并存在一个map中因为我们的DynamicDataSource继承了AbstractRoutingDataSource抽象类,AbstractRoutingDataSource中有几个重要的属性在这里我们用到了@NullableprivateMap<Object,...原创 2020-11-05 17:37:21 · 685 阅读 · 1 评论 -
项目要实现多数据源动态切换,咋搞?
文章首发于公众号:编程大道在做项目的时候,几乎都会用到数据库,很多时候就只连一个数据库,但是有时候我们需要一个项目操作多个数据库,不同的业务功能产生的数据存到不同的数据库,那怎么来实现数据源的动态、灵活的切换呢?今天我们就来实现这个功能。前期准备工作我们需要有一台联网的电脑(用于maven自动下载依赖),并且电脑安装JDK 8、IDEA、MySQL数据库、maven,首先创建一个springboot项目(SSM也行)。springboot版本和SSM版本的代码都已经放到码云托管。感兴趣的可.原创 2020-10-19 12:46:56 · 1066 阅读 · 4 评论 -
Slf4j之MDC应用
大家好久不见,我是walking。今天给大家带来一个日志方面的知识——MDC,不知道大家认识不,反正我是最近刚知道的????初见MDC前两天看项目中的代码,无意中看到一个自定义的线程池MDCThreadExecutor extends ThreadPoolTaskExecutor主要针对spring-context中的ThreadPoolTaskExecutor线程池进行了扩展,但也没做多少扩展,仅仅是引入了两个属性,如下:1privateMap<String,String..原创 2020-09-07 11:20:08 · 1157 阅读 · 1 评论 -
Java并发编程之CAS原理及用法详解
在Java并发编程的世界里,synchronized 和 Lock 是控制多线程并发环境下对共享资源同步访问的两大手段。其中 Lock 是 JDK 层面的锁机制,是轻量级锁,底层使用大量的自旋+CAS操作实现的。学习并发推荐《Java并发编程的艺术》那什么是CAS呢?CAS,compare and swap,即比较并交换,什么是比较并交换呢?在Lock锁的理念中,采用的是一种乐观锁的形式,即多线程去修改共享资源时,不是在修改之前就加锁,而是乐观的认为没有别的线程和自己争锁,就是通过CAS的理念去原创 2020-08-24 13:36:34 · 425 阅读 · 0 评论 -
Java 8的新特性还不了解?快进来!
能坚持别人不能坚持的,才能拥有你想拥有的。关注编程大道,让我们一起成长哈喽,大家好,我是walking,今天我们说说Java 8的新特性。Java 8从发布到现在已经6年多了,java 8在Java历史版本中是一个具有“里程碑”意义的重要版本,相信现在很多公司都用上了Java 8这个版本,用了之后你就知道为什么说是“里程碑”了,然后你会觉得“真香”!但是事情总不是那么绝对,我相信目前还有很多公司依然在用java 7甚至是java 6,相信也会有很多小伙伴即便是用上了java 8但是却..转载 2020-08-20 17:31:08 · 409 阅读 · 0 评论 -
近期Java高级开发岗面试总结
原文出处:公众号:编程大道作者:walking近期Java高级开发岗面试总结哈喽大家好,我是walking,这是我的公众号:编程大道。很久没和大家见面了,文章更新的速度略有延后。这个公众号断断续续的也维护了有三年了,其实实际开始专心维护的时间也就从1年多前开始的,总是忙于工作,没有太多的时间静下心来好好写,好在有400多个小伙伴关注着,不离不弃的,加油,继续努力。上周抽空开放了一下招聘网站上的简历,抱着试一试的态度,主要是想检验一下自己这段时间学的怎么样,如果有好的工作机会还是会.原创 2020-06-29 09:20:39 · 664 阅读 · 0 评论 -
Java网络和代理
Java网络和代理1)简介在当今的网络环境中,特别是企业网络环境中,应用程序开发人员必须像系统管理员一样频繁地处理代理。在某些情况下,应用程序应该使用系统默认设置,在其他情况下,我们希望能够非常严格地控制通过哪个代理服务器,并且在中间的某个地方,大多数应用程序都乐于通过为用户提供设置代理设置的GUI,来将决策委派给用户,就像在大多数浏览器中一样。在任何情况下,像Java这样的开发平台应该提供...翻译 2019-07-26 21:47:54 · 602 阅读 · 0 评论 -
Spring-Autowired注解使用规则
@Autowired 的使用规则发生了变化:容器中有该类型的候选Bean容器中可以含有多个该类型的候选Bean(Spring 3.x以后)Spring 3.x以后,单独使用 @Autowired 时变量名一定要和该类型多个 Bean 的其中一个相同(即上文中的@Autowired private Student student;,student 就是多个Bean中其中一个Bean...原创 2019-08-03 09:52:50 · 552 阅读 · 0 评论 -
SpringBoot入门--springboot性能优化
启动优化显示声明扫包范围: 即不使用@SpringBootApplication默认扫包,使用@ComponentScan(basePackages = { “com.xxx.controller” ,“com.xxx.service” })显示声明扫包范围。原因是@SpringBootApplication默认扫包,扫的是启动类下的所有子包,实际开发场景中有很多包是不需要扫的,所以用默认的扫...原创 2019-07-06 09:03:10 · 282 阅读 · 0 评论 -
MySQL数据去重--distinct的使用
一般情况下,我们会用distinct去除查询的到结果的重复记录,但是distinct只能返回它的目标字段,而无法返回其它字段。下面先来看看例子: tableid name 1 a 2 b 3 c 4 c 5 b select distinct name from table得到的结果是: name...转载 2017-07-16 10:35:27 · 3560 阅读 · 0 评论 -
Hibernate中Inverse和cascade的区别
Inverse和cascade是Hibernate映射中最难掌握的两个属性。两者都在对象的关联操作中发挥作用。1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one转载 2017-07-07 20:49:29 · 251 阅读 · 0 评论 -
过滤器和拦截器的区别
很多初学者对拦截器和过滤器的区别说不清楚,这也是面试中经常会问到的问题,今天谈一谈二者的区别,仅供参考。过滤器:是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑。比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或...转载 2017-07-08 16:00:50 · 240 阅读 · 0 评论 -
项目部署到weblogic后页面乱码问题
问题描述:windows环境下,将项目部署到weblogic运行startWebLogic.cmd启动weblogic后,浏览器访问页面乱码问题,在Tomcat不会乱码。请不要看着博文就直接改了,先看完你的问题是属于哪种情况再改,避免走弯路!要对症下药。我就走了很多弯路下面总结了1.2.3.4种解决方案,遇见最多的是前两中修改方案,请看: 1、页面乱码的修改方案:a.先查看...原创 2018-10-29 15:59:06 · 3527 阅读 · 0 评论 -
mybatis+Tomcat使用JNDI配置数据源
我自己做了一个练手的项目,项目已经基本完成,但是项目开始用的是jdbc配置数据源,一切都没有问题,后来我想把它改成用jndi配置数据源。下面是我改造时查了很多资料后整理的学习笔记,自己试过了没问题。仅供参考,可能每个人的情况不一样。依赖的环境:Windows,java编辑器,Tomcat,web项目(spring+mybatis+MySQL)具体操作步骤如下:1、配置全局的jndi在Tom...原创 2018-11-20 20:13:35 · 5750 阅读 · 0 评论 -
JNDI 和 JDBC 的区别-个人理解
网上关于JNDI和JDBC的定义有很多,但是都很官方不容易理解,下面是我最近查阅资料得出的心得体会。希望对你在理解上有一点点的帮助,说的不对的请指正哦JDBC看到最多的就是,JavaDatabaseConnectivity(JDBC)是一个标准的JavaAPI,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。通俗的讲就是JDBC用来连接数据...原创 2018-11-20 21:05:13 · 19960 阅读 · 5 评论 -
dubbo入门教程-从零搭建dubbo服务
本文是学习了dubbo之后自己手动写的,比较通俗,很多都是自己学习之后的理解,写的过程中没有参考任何文章。另外dubbo也有官方文档,但是比较官方,也可以多看看dubbo的官方中文文档。代码示例连接:demoTestdubbo是阿里的一个分布式服务开源框架,它的设计理念就是把一个大而全的项目模块化,每个模块都是一个独立的项目。为什么要把大项目拆分成多个小项目呢?因为随着项目越做...原创 2018-12-04 23:51:08 · 1033 阅读 · 0 评论 -
JAVA RMI简介与优缺点分析
RMI方式的调用,如:rmi://10.20.134.140:2099/DataServer1.Java RMI 简介RMI(Remote Method Invocation),RMI是分布式对象软件包,它简化了在多台计算机上的JAVA应用之间的通信。必须在jdk1.1以上,RMI用到的类:java.rmi.Remote 所有可以被远程调用的对象都必须实现该接口java.rmi.ser...转载 2018-12-24 17:22:30 · 3063 阅读 · 0 评论 -
如何实现页面广告随时上下线、过期自动下线及到时自动上线
需求描述:某些页面需要配置广告或活动宣传图,广告或活动需满足随时上下线、过期自动下线及到时自动上线。如:现在时间2019-2-22 16:16:13,我要在支付完成页面配置领奖活动,活动要在2019-3-10 00:00:00准时上线,在2019-3-30 23:59:59结束活动。那我要的效果是,我在活动上线前的任意时刻配置完活动后,页面到时间自动上线这个活动。也可能会是其他的多个活动或...原创 2019-03-05 16:00:56 · 873 阅读 · 3 评论 -
java常见面试题
Spring面试,IoC和AOP的理解spring 的优点?1.降低了组件之间的耦合性,实现了软件各层之间的解耦2.可以使用容易提供的众多服务,如事务管理,消息服务等3.容器提供单例模式支持4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能5.容器提供了众多的辅助类,能加快应用的开发6.spring对于主流的应用框架提供了集成支持,如hibernate...转载 2017-07-03 22:18:08 · 205 阅读 · 0 评论 -
从Spring的几个阶段理解其工作过程
Spring框架非常强大,想要彻底弄懂Spring是非常困难的。为了便于了解Spring的工作原理,我们来研究一下,Spring是怎么加载的,Spring会经过几个阶段。我们站在Javaweb的角度将Spring分为若干阶段进行分析,以便加深我们对Spring的理解。Spring的运行大致分可以为三个阶段:配置阶段、初始化阶段和运行时阶段。图解我们通过下图来了解下Spring的...原创 2019-07-08 15:04:48 · 201 阅读 · 0 评论 -
Redis入门(一)-Redis简介
最近几年,Rddis非常的火,受到广大中大型公司,特别是互联网公司的青睐。而作为后端开发,如果你不知道Redis或不会用,没用过,你都不好意思出去找工作。可想而知Redis对于IT行业意义多么重大。对于一些初学者可能并不了解Redis,所以,我们接下来一起来学习一下Reids的一些基本概念,进而加深对Redis的理解。Redis是什么?首先看官网的解释:Redis是一个开源(BSD许可),...原创 2019-07-08 10:57:38 · 158 阅读 · 0 评论 -
SQL四种语言:DDL,DML,DCL,TCL
SQL四种语言:DDL,DML,DCL,TCL1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.DDL是SQL语言的四大功能之一。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控转载 2017-07-03 22:27:26 · 261 阅读 · 0 评论