JavaEE
你认识小汐吗
这个作者很懒,什么都没留下…
展开
-
Springboot 读取配置文件及自定义配置文件
读取核心配置文件核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单。核心配置文件application.properties内容如下:server.port=9090test.msg=Hello World Springboot使用@Value转载 2018-01-30 18:08:04 · 560 阅读 · 0 评论 -
MyBatis的PageHelper不生效问题
今天使用pageHelper,发现设置了PageHelper.startPage(page, pageSize);pageSize设置为10,但是结果并没有分页,查处了全部的数据; 问题解决: 原因是mybatis的依赖版本问题,之前配置的是1.0.0版本,这个版本不支持分页拦截 <dependency> &...原创 2018-03-21 10:00:48 · 3256 阅读 · 0 评论 -
解决springmvc文件下载,内容损坏问题
问题描述: java 中inputstream流 转成string,再将String转换会inputStream,下载下来的文件,内容损坏,例如下载word文档使用场景: 底层服务读取到文件内容获得InputStream,因为需要多次接口调用,为了便于数据传递,将InputStream转换为String字符串进行传递,上层服务调用接口,获取String字符串,在转换成InputStre...原创 2018-04-02 18:57:44 · 9069 阅读 · 1 评论 -
json字符串转Bean和List时候打印Date的WARN级别日志
在使用sf.net.json的JSONObject转换对象和集合的时候,打印如下日志;'java.util.Date.class' has no write method. SKIPPED.解决办法: 使用alibaba的fastjson原创 2018-03-27 18:14:38 · 500 阅读 · 0 评论 -
static静态代码块执行次数
一、java类中 static静态代码块的执行次数 1、在类加载的init阶段,类的类构造器中会收集所有的static块和字段并执行,static块只执行一次,由JVM保证其只执行一次。二、代码,在工具类中使用静态代码块public class FileTypeDetector { private static Properties mappings; public static Ma...原创 2018-03-29 12:42:03 · 10470 阅读 · 0 评论 -
get方法传递到后台中文乱码解决方法
在使用mvc,接收get方法传递过来的参数的时候,出现中文乱码,如下解决办法:path = new String(path.getBytes("ISO-8859-1"),"UTF-8");将参数通过ISO-8859-1进行解码,解码为原始二级制,在进行UTF-8编码,解决中文乱码,debug发现没有中文乱码了...原创 2018-03-29 14:29:10 · 876 阅读 · 0 评论 -
Select2插件dropDown的配置
近期公司开发页面,使用到了select2的js插件--select2.full.min.js,我们有个需求就是在option的text内容前面和后面要动态的加上图标,如图: 面临问题:使用select2,option的下拉框会经过处理变成<span>标签在页面上显示,所以无法再option上进行添加,而且<option>标签不支持后面加图标。 问题解决:...原创 2018-05-04 14:23:10 · 2307 阅读 · 0 评论 -
java中html文件在线浏览,标签注入问题解决
问题描述:项目开发一个功能,可以在线浏览文件内容,当浏览html文件时,出现了标签注入问题,代开html文件看不到内容,直接编译成html页面了。问题原因:html中的标签注入,需要对html中标签进行转义;问题解决:在后台获取文件内容后,使用java的HTMLUtils工具类,将文件内容进行转义;//如果是html文件,需要将内容进行转义,防止html标签注入if (path.endsWith...原创 2018-04-27 13:08:19 · 529 阅读 · 0 评论 -
静态编译和动态编译的区别
静态编译:在编译时确定类型,绑定对象,即通过。 动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,有以降低类之间的藕合性。 java中的反射就是运用了动态编译创建对象。...原创 2018-04-28 11:02:44 · 2925 阅读 · 0 评论 -
父类和子类中各种方法的执行顺序
执行顺序为:父类的静态代码块子类的静态代码块执行父类的构造代码块执行父类的构造方法执行子类的构造代码块执行子类的构造方法执行子类的A方法...原创 2018-06-17 14:50:51 · 2978 阅读 · 0 评论 -
Integer和int的区别
int是我们常说的整形数字,Java语言虽然号称一切都是对象,但原始数据类型是例外。Integer是int对应的包装类,它有一个int类型的字段存储数据。 public static void main(String[] args) { //原始数据类型赋值 int i1 = 10; int i2 = 10; Sys...原创 2019-07-11 10:17:04 · 162 阅读 · 0 评论 -
ClassNotFoundException和NoClassDefFoundError的区别
1、ClassNotFoundException 从名字上看,可以看出来这个继承自Exception类,是一个Exception类型,出现场景:当程序启动过程中,类加载器常识加载class文件的时候,没有在指定的classpath中找到指定的类,就会抛出ClassNotFoundException异常。2、NoClassDefFoundError 从名...原创 2019-07-12 09:55:14 · 465 阅读 · 0 评论 -
VO、DTO、DO、PO的概念和用处
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Do...原创 2019-07-22 09:41:16 · 480 阅读 · 0 评论 -
break和continue的区别
break是结束整个循环,而continue是结束本次循环(跳过下一步)原创 2018-03-30 10:24:00 · 156 阅读 · 3 评论 -
线程池中shutdown()和shutdownNow()方法的区别
shutDown() 当线程池调用该方法时,线程池的状态则立刻变成SHUTDOWN状态。此时,则不能再往线程池中添加任何任务,否则将会抛出RejectedExecutionException异常。但是,此时线程池不会立刻退出,直到添加到线程池中的任务都已经处理完成,才会退出。shutdownNow() 根据JDK文档描述,大致意思是:执行该方法,线程池的状态立刻变成STOP状态,并试...原创 2018-03-16 12:41:11 · 4254 阅读 · 0 评论 -
shiro入门学习
一、架构要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例:(1)使用用户的登录信息创建令牌UsernamePasswordToken token = new UsernamePasswordToken(userna转载 2018-01-31 11:33:28 · 151 阅读 · 0 评论 -
Shiro过滤器过滤属性
securityManager:这个属性是必须的。loginUrl :没有登录的用户请求需要登录的页面时自动跳转到登录页面,不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的”/login.jsp”页面。successUrl :登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。u原创 2018-01-31 11:40:50 · 747 阅读 · 0 评论 -
java异常分类
Throwable包含了错误(Error)和异常(Excetion两类)Exception又包含了运行时异常(RuntimeException, 又叫非检查异常)和非运行时异常(又叫检查异常)(1) Error是程序无法处理了, 如果OutOfMemoryError、OutOfMemoryError等等, 这些异常发生时, java虚拟机一般会终止线程 .(2)原创 2018-01-25 11:38:55 · 132 阅读 · 0 评论 -
使用ajax和history.pushState无刷新并且改变页面URL
表现如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。是什么有这么强大的功能呢?HTML5里引用了新的API,history.pushState和history.replaceStat转载 2018-02-01 18:20:59 · 645 阅读 · 0 评论 -
Spring中propagation的7种事务配置
一、在声明式的事务处理中,要配置一个切面,其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默认是REQUIRED。二、Spring中七种Propagation类的事务属性详解:原创 2018-01-25 17:48:22 · 74566 阅读 · 0 评论 -
URLEncoder.encode与URLDecoder.decode处理url请求中特殊参数
java中使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串类似于:za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==显然 这里面含有了 特殊字符: / + = 等等,如果直接通过url 来传递该参数:url = "xxxx原创 2018-02-01 18:51:08 · 3356 阅读 · 0 评论 -
Spring事务注解@Transactional详细用法
事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects)支持声明式原创 2018-01-26 09:33:57 · 1417 阅读 · 0 评论 -
ByteArrayOutputStream和ByteArrayInputStream
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。具体用法如下:原创 2018-02-06 19:39:03 · 376 阅读 · 0 评论 -
logger.error用法
使用SLF4J打印日志,它有一个占位符(place holder){},一般不是异常的是这样打印的:[html] view plain copylogger.info("InvestmentFacadeImpl queryInvestmentInfo: investmentListResponse is {}", investmentListResponse); {} 就是一个占位符,那么打印出...原创 2018-02-12 10:58:15 · 36727 阅读 · 0 评论 -
多线程解决for循环效率问题
在for里面,如果执行一次for里面的内容所需时间比较长,可以使用线程池来提高for循环的效率;public class TreadFor { private static final int loopNum = 1*10; public static void main(String args[]) throws InterruptedException { ...原创 2018-03-16 11:28:19 · 51313 阅读 · 6 评论 -
线程池之newCachedThreadPool可缓存线程池
java线程池:Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。...原创 2018-03-16 11:53:20 · 31390 阅读 · 4 评论 -
线程池之newFixedThreadPool定长线程池
newFixedThreadPool创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newFixedThreadPool固定线程池, 使用完毕必须手动关闭线程池, 否则会一直在内存中存在。示例代码:public class ThreadPoolFixed { public static void main(String[] args) { //设置线程池大小为3 E...原创 2018-03-16 12:23:59 · 13260 阅读 · 0 评论 -
getMethods 与 getDeclaredMethods 的区别
1、public Method[] getMethods() 返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法。2、public Method[] getDeclaredMethods() 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。当然也包括它所实现接口的方法。...原创 2019-07-22 14:52:43 · 614 阅读 · 0 评论