
Java语言+J2EE开发
Soyoger
申明:个人微信公众号:AI技术研习社,公众号ID:ai2club。本博客只是用来学习,并不从事任何商业活动,其内容是自己总结或者来自互联网搜索到的,并没有过多关注版权问题,如有侵权内容,请私信我进行删除,谢谢。本博客内容主要围绕计算机领域热点技术和工作内容,不涉及版权问题,任何人可以查看、转载。
展开
-
Spring Boot引用本地jar包
最近在做一个SpringBoot的小工程,这类工程通常都是使用maven管理依赖并打包,但最近这个工程因为某些原因(比如企业自己的jar包,或者修改后的开源项目jar包)需要引用本地jar包。这种情况有两种方案可以采用: 一,搭建一个本地maven源,仍然通过maven管理。这种方法的缺点是,一旦工程需要多人维护,每人都需要搭一个本地源,比较麻烦,除非公司有公用的内部maven源,原创 2017-08-02 10:51:51 · 2113 阅读 · 0 评论 -
SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
在上一篇文章,讲了服务的注册和发现。在服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。spring cloud有两种调用方式,一种是ribbon+restTemplate,另一种是feign。在这一篇文章首先讲解下基于ribbon+restTemplate。一、ribbon简介Ribbon is a client side load bal原创 2017-08-14 10:50:14 · 1080 阅读 · 0 评论 -
使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中
前言:本项目基于maven构建spring-boot项目可以快速构建web应用,其内置的tomcat容器也十分方便我们的测试运行;spring-boot项目需要部署在外部容器中的时候,spring-boot导出的war包无法再外部容器(tomcat)中运行或运行报错,本章就是详细讲解如何解决这个问题1、pom.xml一览[html] view plain c转载 2017-07-31 18:11:11 · 1105 阅读 · 0 评论 -
Spring Boot配置文件详解
springboot采纳了建立生产就绪spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。在一般情况下,我们不需要做太多的配置就能够让spring boot正常运行。在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性。一、自定义属性当我们创建一个springboot项目的时候,系统默认会为我们在src/main/Java/reso转载 2017-08-04 09:17:59 · 493 阅读 · 0 评论 -
Spring Boot 批量上传: The field files exceeds its maximum permitted size of 1048576 bytes.
Spring Boot 批量上传异常: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field files exceeds its maximum permitted size of 1048576 bytes.Spring Boot以Servlet 3 ja原创 2017-10-21 21:15:21 · 1986 阅读 · 0 评论 -
SpringBoot用JdbcTemplates访问Mysql
本文介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问。准备工作jdk 1.8maven 3.0ideamysql初始化mysql:-- create table `account`DROP TABLE `account` IF EXISTSCREATE TABLE `account` ( `id` int(11)原创 2017-08-04 13:46:25 · 396 阅读 · 0 评论 -
spring boot项目打包成war并在tomcat上运行的步骤
原文地址:http://m.blog.youkuaiyun.com/article/details?id=52515226把spring-boot项目按照平常的web项目一样发布到tomcat容器下一、修改打包形式在pom.xml里设置 war二、移除嵌入式tomcat插件在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代原创 2017-09-22 11:30:43 · 548 阅读 · 3 评论 -
Spring Boot自定义错误页面
Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它。它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去完成。对于我来说,自定义错误页面就是其中之一。比如404错误,如果不处理的话,会出现“This application has no explicit mapping for /error, so y原创 2017-09-22 11:56:19 · 1537 阅读 · 0 评论 -
使用Spring Boot开发Restful程序
一、简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。多年以来,Spring IO平台饱原创 2017-07-31 15:51:07 · 549 阅读 · 0 评论 -
spring-boot 添加http自动转向https
今天主要遇到的2个问题,第一个是springboot遇到跨域的问题,这个问题解决完之后,还以为整个事情就结束了。万万没想到,由于我们前端的所有访问都是https的,所以springboot也需要配置https的访问,所以用jdk自带的生成ssl,然后配置打包,这下OK了。SSL是为网络通信提供安全以及保证数据完整性的的一种安全协议,SSL在网络传输层对网络连接进行加密。什么是https原创 2017-09-15 16:05:41 · 2922 阅读 · 2 评论 -
spring boot创建应用 端口冲突8080
如果你电脑上的8080端口号被其它程序(如jenkins)占用了,则运行lightsword会报以下错误:java.net.BindException: Address already in use......Failed to start component [Connector[HTTP/1.1-8080]]...解决方法:在src->main->resources目录下新建一...原创 2017-08-02 09:26:59 · 10805 阅读 · 13 评论 -
SpringBoot 整合JPA
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。JPA是需要Provider来实现其功能的,hibernate就是JPA Provider中很强的一个,应原创 2017-08-04 14:06:39 · 363 阅读 · 0 评论 -
spring boot创建一个应用
Spring Boot是Spring团队推出的新框架,它所使用的核心技术还是Spring框架,主要是Spring 4.x,所以如果熟悉spring 4的人,能够更快的接受和学会这个框架。Spring boot可以看做是在spring框架基础上再包了一层,这一层包含方便开发者进行配置管理和快速开发的模块,以及提供了一些开箱即用的工具,比如监控等。 Spring Boot官方文档有中文翻译版原创 2017-08-01 13:07:14 · 684 阅读 · 0 评论 -
SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一、spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。另外对于“微服务架构” 不了解的话,可以通过原创 2017-08-14 10:22:00 · 608 阅读 · 3 评论 -
spring boot 报错:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default p
** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.Your ApplicationContext is unlikely to start due to a @ComponentScan of the default原创 2017-08-14 09:56:08 · 627 阅读 · 0 评论 -
SpringCloud教程 | 第三篇: 服务消费者(Feign)
上一篇文章,讲述了通过restTemplate+ribbon去消费服务,这篇文章主要讲述通过feign去消费服务。一、Feign简介Feign是一个声明式的web服务客户端,它使得写web服务变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,包括Feign 注解和JAX-RS注解。Feign同时支持可插拔的编码器和解码器。spring cloud对Spring原创 2017-08-14 11:09:21 · 758 阅读 · 0 评论 -
微服务架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书《Building Microservices》。该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统。除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microse转载 2017-08-08 17:04:10 · 622 阅读 · 0 评论 -
自定义线程类中实例变量与其他线程共享与不共享
1. 不共享情况:package java_thread.learn01.c002;public class MyThread extends Thread { private int count = 5; public MyThread(String name){ super(); this.setName(name);原创 2017-06-09 09:41:27 · 1430 阅读 · 0 评论 -
Log4J入门教程(二) 参数讲解
Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远 存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(S...原创 2017-05-06 11:45:48 · 612 阅读 · 0 评论 -
Log4J入门教程(三) maven构建
一、入门实例1、 新建一个maven Java工程,导入Log4j包,pom文件中对应的配置代码如下:<!-- log4j support --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <versi...原创 2017-05-06 11:53:03 · 919 阅读 · 0 评论 -
Log4J入门教程(三) web项目的log4j配置
1.将log4j-1.2.14.jar加入你的项目中;2.在src/下创建log4j.properties文件;3.在web.xml中配置log4j的信息,如下:<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/cla...原创 2017-05-06 12:00:38 · 480 阅读 · 0 评论 -
详解log4j2(上) - 从基础到实战
log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量、可配置的审计型日志、基于插件架构的各种灵活配置等。如果已经掌握log4j 1.x,使用log4j2还是非常简单的。先看一个示例1 基础配置普通Java项目手动添加jar包log4j-api-2.5.jar log4j-core-2.5.jar Maven项目...原创 2017-05-06 12:08:04 · 493 阅读 · 0 评论 -
详解log4j2(下) - 按日志级别区分文件输出
1. 按日志级别区分文件输出有些人习惯按日志信息级别输出到不同名称的文件中,如info.log,error.log,warn.log等,在log4j2中可通过配置Filters来实现。假定需求是把INFO及以下级别的信息输出到info.log,WARN和ERROR级别的信息输出到error.log,FATAL级别输出到fatal.log,配置文件如下:<Configuration statu...原创 2017-05-06 12:13:07 · 3568 阅读 · 0 评论 -
详解log4j2(下) - Log4j2在WEB项目中配置
官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/首先在WEB项目中引入以下几个jar包:① log4j-api-2.4.1.jar② log4j-core-2.4.1.jar③ log4j-web-2.4.1.jar按照以往的思路,简单修改web.xml中的Log配置如下:1 <context-param>2 <par...原创 2017-05-06 12:15:56 · 3551 阅读 · 0 评论 -
slf4j介绍及配置详解
首先maven构建项目,在pom.xml中添加下面代码。 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version>原创 2017-05-06 12:22:13 · 21537 阅读 · 6 评论 -
SLF4J和log4j的整合使用
概念 SLF4J:即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。 在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统,SLF4J提供了统一的记录日志的接口...原创 2017-05-06 12:26:01 · 2498 阅读 · 0 评论 -
slf4j+log4j2的整合配置
Log4j 2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活。下面是结合slf4j的配置和使用过程:1、引用依赖包及相关注释:1<!-- log配置:Log4j2 + Slf4j --><dependency> <gro...原创 2017-05-06 12:32:04 · 3255 阅读 · 0 评论 -
java常见的时间处理工具类
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class GetSystemTime { /** * 格式化时间 * @param now * @return */ public static Str...原创 2018-03-20 14:45:02 · 1800 阅读 · 0 评论 -
Java中HashMap、LinkedHashMap和TreeMap区别使用场景
1. HashMap中k的值没有顺序,常用来做统计。2.LinkedHashMap吧。它内部有一个链表,保持Key插入的顺序。迭代的时候,也是按照插入顺序迭代,而且迭代比HashMap快。3. TreeMap的顺序是Key的自然顺序(如整数从小到大),也可以指定比较函数。但不是插入的顺序。4.Hashtable与 HashMap类似,它继承自Dictionary类、不同的是:它不允许记...原创 2018-03-25 14:46:33 · 10528 阅读 · 2 评论 -
Log4J入门教程(一) 入门例程
Log4J的入门简介学习简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进...原创 2017-05-06 11:42:01 · 474 阅读 · 0 评论 -
Java多线程之优先级setPriority
在操作系统中,线程可以划分优先级,优先级较高的线程得到CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务(其实并不是这样)。在Java中,线程的优先级用setPriority()方法就行,线程的优先级分为1-10这10个等级,如果小于1或大于10,则抛出异常throw new IllegalArgumentException(),默认是5。public class M原创 2017-06-09 11:55:42 · 12436 阅读 · 0 评论 -
Java 多线程 yield方法
yield()方法理论上,yield意味着放手,放弃,投降。一个调用yield()方法的线程告诉虚拟机它乐意让其他线程占用自己的位置。这表明该线程没有在做一些紧急的事情。注意,这仅是一个暗示,并不能保证不会产生任何影响。在Thread.java中yield()定义如下:1234567/** * A hint to t原创 2017-06-09 11:45:15 · 1089 阅读 · 0 评论 -
java线程暂停与恢复suspend和resume
通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。当调用suspend()函数后,线程不会释放它的“钥匙”。在开启子线程后立即让他挂起,直到执行了Resume()后恢复线程的执行。注意如果在线程没有挂起时去调用Resume()方法会出现异常,所有使用这样的方法进行线程线程同步已经不推荐使用了原创 2017-06-09 11:32:36 · 1402 阅读 · 0 评论 -
java终止线程的三种方法
有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。1. 使用退出标志终止线程 当run方法执行完后,线程就会退出。但原创 2017-06-09 10:23:54 · 906 阅读 · 0 评论 -
java多线程中几个常用的方法
1. currentThreadThread.currentThread()可以获取当前线程的引用,一般都是在没有线程对象又需要获得线程信息时通过Thread.currentThread()获取当前代码段所在线程的引用。2. isAliveThread.isAlive()返回true是不是表示这个线程的run()方法还在运行.3.sleepsleep()方法导致了程序暂停执行指原创 2017-06-09 10:13:39 · 598 阅读 · 0 评论 -
java synchronized详解
synchronized关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个syn原创 2017-06-09 10:04:52 · 345 阅读 · 0 评论 -
java多线程(一)-Thread类和Runnable接口
public class Threadextends Objectimplements RunnableThread通过实现Runnable实现多态关系。Java中实现多线程,最基本2种方式: class PrimeThread extends Thread { long minPrime; PrimeThread(long minP原创 2017-06-08 16:50:37 · 668 阅读 · 0 评论 -
多进程与多线程的区别
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。原创 2017-06-08 16:31:30 · 359 阅读 · 0 评论 -
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from
原因:项目中缺少servlet-api.jar文件。解决办法:将D:\Program Files\Apache Software Foundation\Tomcat7\common\lib下的servlet-api.jar拷贝到项目中,然后编译即可。原创 2017-05-24 09:37:59 · 755 阅读 · 0 评论 -
Servlet 表单数据
很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序。浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。GET 方法GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔,如下所示:http://www.test.com/hello?key1=value1&key2=value2GET 方法转载 2017-05-24 08:58:47 · 540 阅读 · 0 评论