Java开发经验积累
细数日常开发难题解决方案以及项目框架和底层封装使用
Smile_Miracle
各位大牛多多提携
展开
-
tomcat配置默认显示页面
所谓的修改tomcat的默认主页,就是在tomcat服务器开启时输入ip:port能直接进入你自己定义的主页而不是tomcat主页,具体有以下几个步骤:①首先进入tomcat 下的conf目录,修改server.xml文件,具体修改代码如下:原创 2016-11-16 11:52:52 · 8523 阅读 · 1 评论 -
linux环境下配置tomcat HTTPS协议
https简介 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用转载 2016-12-17 17:26:37 · 2039 阅读 · 0 评论 -
linux+tomcat配置域名访问指定项目,不用接项目名
直接上码,tomcat/conf/server.xml配置如下:<?xml version='1.0' encoding='utf-8'?><Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener原创 2016-12-21 21:10:12 · 3277 阅读 · 2 评论 -
List集合切割实现对已有数据的分页显示(LIST容器数据量不大的情况下推荐使用)
package com.lyt.usermanage.utils;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class SplitLstUtils { private static final Integer default_size = 1000; @Sup原创 2017-04-10 15:06:37 · 1326 阅读 · 0 评论 -
Java 判断一个时间段(YYYY-MM-DD)是否在一个区间
/** * @Title: isInDate * @Description: 判断一个时间段(YYYY-MM-DD)是否在一个区间 * @param @param date * @param @param strDateBegin * @param @param strDateEnd * @param @return 设定文件 *原创 2017-04-11 19:03:46 · 6226 阅读 · 0 评论 -
Java中如何优雅正确的终止线程
Java中终止线程的方式主要有三种:1、使用stop()方法,已被弃用。原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的“残疾”数据,不符合完整性,所以被废弃。So, forget it!2、使用volatile标志位看一个简单的例子:首先,实现一个Runnable接口,在其中定义volatile标志位,在run()原创 2017-05-10 16:53:38 · 13025 阅读 · 9 评论 -
Java多线程wait,notify以及同步锁的运用实例
一个开多线程打印10次ABC的小Demo,如何保证线程执行的有序性,以下面这个Demo来做说明:package com.lyt.usermanage.test;public class MyThreadTest5 implements Runnable { private String name; private Object lastThread; private Objec原创 2017-05-11 13:35:59 · 972 阅读 · 0 评论 -
线程中的乐观与悲观锁的区别
线程中的锁可以分为乐观锁和悲观锁,这两个都是实现锁机制的两种办法。 悲观锁:根据字面意思,悲观,就是不是太好的。当一个线程访问这个数据的时候,悲观锁会把这个数据给锁住,不被其他线程所访问,直到这个线程完成了对数据的提交后,其他线程才能够访问或者操作。这样就带来了不便,比如,我们在进行网上订票的时候,一个用户访问了这个系统,访问了这个系统中数据库的数据,就把这个数据给锁住了,这样其他用户根本就看不到转载 2017-05-17 11:20:33 · 939 阅读 · 0 评论 -
mybatis级联查询
关联有嵌套查询和嵌套结果两种方式,本文是按照 嵌套结果 这种方式来说明的上一章介绍了多对一的关系,用到了,这是一个复杂类型的关联。我们选择一个示例来回顾下,比如:一个博客有一个用户,关联映射就工作于这种结果之上。首先看下,我们在本文中要用到的表结构字段:博客 blog : id title author_id 作者 author: id username password email转载 2016-11-22 16:32:10 · 1633 阅读 · 0 评论 -
集成通用Mapper,单表操作从此轻松
如果你使用的Maven开发,你只需在pom.xml文件中加入如下依赖:<dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>2.3.4</version></dependency>如果你想导入架包:下面是连接,由于Mapper依赖JPA你还得下载原创 2016-11-23 12:00:09 · 6312 阅读 · 0 评论 -
Spring集成HttpClient实现跨域请求
在配置spring集成httpclient之前我们先说一下Jsonp,这是一种基于页面script标签的src属性实现的跨域请求,相比于httpclient,jsonp有两点很大的缺点,首先,它只能发送get请求,如果发送post请求会造成请求无法解析获取不到数据的问题,再者,如果返回的数据你没有经过配置相应的编码文件来处理你拿到的则会是一堆乱码,这中问题对于httpclient则没那么多约束,他是原创 2016-11-24 11:25:47 · 4670 阅读 · 4 评论 -
封装通用分页工具,通过反射指定具体的实现类
分页具体实现类import java.util.ArrayList;import java.util.List;public class NavPageInfo { private static final Integer DEAFULT_PAGE_SIZE = 10; //每页默认记录数 private static final Integer DEAFULT_PAGENO_S原创 2016-12-24 10:49:12 · 800 阅读 · 0 评论 -
JAVA SDK 极光推送后台DEMO
pom导依赖 <properties> <comLog.version>1.1.1</comLog.version> </properties> <dependencies> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-clien原创 2017-02-28 13:43:16 · 5146 阅读 · 0 评论 -
Java多线程Thread类和Runable接口的区别以及线程类详解
在Java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread extends Th转载 2017-05-10 11:52:29 · 1492 阅读 · 0 评论 -
Java自定义注解解析
什么是注解Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时转载 2017-05-11 17:54:08 · 1118 阅读 · 0 评论 -
浅谈对ActiveMQ的理解
现如今项目开发过程中由于功能多,流程长,机制繁多且复杂,让一个线程去跑完一个业务的整个流程的话会显得非常繁琐且耦合性太强,代码量很大,这个时候我们就可以用到一款技术叫做消息队列,我们可以通过定义好发送消息的模式以及一些其他数据,就可以在一个业务有很多流程的时候通过发送消息的形式让队列通知消息消费者去完成一些操作,比如说数据的存储与修改等,这样无形之中就把一个大业务拆分成了很多小的业务的组合体,实现了原创 2017-05-19 14:57:09 · 4172 阅读 · 1 评论 -
MyEclipse 2017 ci6 安装反编译插件(本人自己摸索的方法,亲测可行)
第一步:关闭ME,去一下地址下载jad的反编译jar包和.exe文件,并解压,将Jad.exe文件放到一个文件夹下 JAD下载第二步:在你自己的MyEclipse2017安装路径下找到dropins文件夹,并在此文件夹下建立Jad插件目录,myeclipse的插件目录一般包含两个二级目录features和plugins,我们要做的就是把ZIP文件解压后的net.sf.jadclipse_3.3.0原创 2017-06-21 12:19:05 · 3133 阅读 · 2 评论 -
关于Spring项目配置多个数据源的实例演示
一、多数据源动态切换原理项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此;又例如:读写分离数据库配置的系统。1、多数据源设置: 1)静态数据源切换:一般情况下,我们可以配置多个数据源,然后为每个数据源写一套对应的sessionFactory和dao层代码(以hibernate为例,mybatis同理),——我们称之为 静态数据源配置 。2)动态数据源切换:可看出在Dao层原创 2017-06-27 14:34:32 · 4965 阅读 · 1 评论 -
SpringMVC项目中偶尔用到servlet,如何在servlet中注入service笔记
仅此做个笔记,防止注入时而成功时而失败的问题。package com.zhy.spdb.sso;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax原创 2017-07-04 16:19:45 · 1998 阅读 · 0 评论 -
Spring整合Quartz实现定时任务的时间更新,暂停和启用(不需要重启项目并且配置多数据源)
这是一套独立的定时系统,暂时不涉及与外界三方系统的交互,如有需求可自己根据场景来修改。配置项目基于spring4+mybatis3+quartz2.2.1来构建的,pom文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc原创 2017-07-28 16:52:53 · 2620 阅读 · 0 评论 -
Maven Web项目解决跨域问题
跨域问题目前笔者所用到的方案大致有三种:jsonp,SpringMVC 4以上注解方式和cros三方过滤器。JsonpJSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。Jsonp原理: 首先在客户端注册一个callback,原创 2017-08-04 14:11:17 · 4344 阅读 · 4 评论 -
web项目Log4j日志输出路径配置问题
问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽可能少的改动配置文件,最好修改实例名后可以不修改log4j的配置文件。 实现分析:一般实现上面需求,需要在修改完war包名称之外要再做下面配置: 1、修改每个实例名下web.xml中参数webApp转载 2017-08-04 14:50:31 · 3203 阅读 · 0 评论 -
关于web项目log日志指定输出文件位置配置
首先我们定义一个可以在运行时动态的找出项目的路径WebAppRootKey,这么做的原因是为了在后面配置log4j输出文件路径的时候能随心配置。<context-param> <param-name>webAppRootKey</param-name> <param-value>amt.root</param-value></context-param>然后要定原创 2017-08-07 15:34:09 · 17705 阅读 · 6 评论