Category: Java / Jsp

Java: maven下读取资源文件的问题, java路径

直接上图吧,新建一个maven工程后,main目录下会有java和resources两个文件夹,其中java文件夹下存放源代码,resources文件夹下存放一些配置文件等。 在弄清楚编译后,资源文件以及字节码存在哪里这个问题之前,有必要明白什么是classpath classpath实际上就是编译后的 以 classes 文件夹为起点的路径,而在ItelliJ IDEA 中编译后的文件都会存入out/production下。 所以,编译后,resources文件夹中的文件以及java目录下的文件都会存入同一个目录(out/production)下,也就是说,编译后是不存在java和resources这两个目… Read More

JAVA:Apache Commons工具集简介, BeanUtils, FileUpload, IO, Validator, Compress

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。   组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. Configuration 一个java应用程序的配置管理类库. DBCP 提供数据库连接池服务. DbUtils 提供对jdbc 的… Read More

Java主线程等待子线程、线程池

public class TestThread extends Thread { public void run() { System.out.println(this.getName() + "子线程开始"); try { // 子线程休眠五秒 Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(this.getName() + "子线程结束"); } } 首先是一个线程,它执行完成需要5秒。   1、主线程等待一个子线程 public class Main { public static void main(Strin… Read More

JAVA: ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池

1、ExecutorService: 是一个接口,继承了Executor: public interface ExecutorService extends Executor { } 2、Executor: 而Executor亦是一个接口,该接口只包含了一个方法: void execute(Runnable command); 3、Executors: 该类是一个辅助类,此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。 此类支持以下各种方法: • 创建并返回设置有常用配置字符串的 ExecutorSer… Read More

JAVA:JsonArray 和 JsonObject遍历方法

一:遍历JsonArray // 一个未转化的字符串 String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ;   // 首先把字符串转成 JSONArray  对象 JSONArray json = JSONArray.fromObject(str ); if(json.size()>0){   for(int i=0;i<json.size();i++){ // 遍历 jsonarray 数组,把每一个对象转成 json 对象     JSONObject job = j… Read More

Java小数点位数保留, 小数点精确

第一种方法 – 使用DecimalFormat类 举个例子,假如我们需要保留两位小数,我们可以这样写 DecimalFormat df = new DecimalFormat("0.00"); 测试如下: double d = 0.200; DecimalFormat df = new DecimalFormat("0.00"); System.out.println(df.format(d)); 输出结果为: 0.20 若double d=0.000;输出结果为0.00; 若double d=0;输出结果为0.00; 若double d=41.2345;输出结果为41.23; 经测试,不管double d的值为多少,最后结果都是正常的两… Read More

JAVA 解析JSON数据,只要看这个就够了!

JSON是一种类似 XML的语言,是用了存储和交换文本信息的语法。它的全称为JavaScript Object Notation(JavaScript 对象表示法)。与xml对比,它更小、更快,更易解析。 想要更好的解析JSON,必须能看懂JSON数据,这样就必须了解JSON语法,好在它的语法非常简单,规则如下: JSON 语法是 JavaScript 对象表示法语法的子集。 - 数据在名称/值对中:如 "firstName" : "John" - 数据由逗号分隔 - 花括号保存对象 - 方括号保存数组 而组成JSON的值可以为以下几种: - 数字(整数或浮点数) - 字符串(在双引号中) - 逻辑值(true 或 false) - 数组(在方括号中) -… Read More

Spring Boot(四):Spring Boot构建RESTful API与单元测试

首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。 @Controller:修饰class,用来创建处理http请求的对象 @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。 @RequestMapping:配… Read More

Spring Boot(三):Spring Boot属性配置文件详解

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用。 在之前的各篇文章中都有提及关于application.properties的使用,主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,本文将具体介绍一些在ap… Read More

Spring Boot(二):使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建。而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也可以通过《Spring Boot快速入门》一文中提到的SPRING INITIALIZR页面工具来创建,相信每位读者都有自己最喜欢和最为熟练的创建方式。 本文我们将介绍嵌入的Intellij中的Spring Initializr工具,它同Web提供的创建功能一样,可以帮助我们快速的构建出一个基础的Spring Boot/Cloud工程。 菜单栏中选择File=>New=>Project..,我们可以看到… Read More

Spring Boot(一):快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用! Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。 Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成… Read More

Java框架篇—Mybatis 入门

MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis只使用简单的XML和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。 ORM工具的基本思想,无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 从配置文件(通常是XML配置文件中)得到sessionfactory。 由sessionfactory产生session。 在session中完成对… Read More