- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 springboot源码解析(一)
SpringBoot应用基础结构我们每创建一个springboot应用就会发现,其目录结构中都会有一个以应用名为首的Application类(下文中都直接称为Application类),而其他包都是在这个类的同级或子级下面,结构如图:Application类作为应用的启动类,位于项目源码的根目录中,至于为什么结构会这么安排,我们下面会说。Application类的结构如上图所示,我们可...
2019-04-29 20:57:39 450
原创 spring-boot-maven-plugin插件的作用
build> plugins> plugin> groupId>org.springframework.bootgroupId> artifactId>spring-boot-maven-pluginartifactId> plugin> plugins>build>spring boot加上这个插件,才可以使用Java
2017-02-05 15:23:47 8349
原创 mysql的字符集
mysql字符集主要分两种,一种就是普通的字符集,另外一种是比较字符集,主要是做联表查询时,多个表之前的字段比较时会用到,如果多个表之间的比较字符集不一致时,做比较会报错。并且字符集与比较字符集是一对多的关系,也就是每一种字符集都会对应多个比较字符集,而且每一种字符集都会有一种默认的比较字符集。mysql的字符集默认是latin1,并不是和系统的字符集一样,这一点切记。所以在安装mysql时以及在
2017-02-03 13:20:56 577
原创 idea中将多个spring boot项目放在一个maven项目中
现在的项目都开始用spring boot来构建了,用spring boot的最大好处就是默认我们什么都不用配置,就可以使用spring,而且可以独立启动,不需要web容器。现在的项目好多都是微服务的模式,一个项目要被拆分成多个服务,服务之间通过接口来调用,每个服务也可以独立启动,彼此之间不需要互相依赖。 刚开始用idea的时候特别不习惯,因为跟eclipse的差别还是很大的,可是
2017-01-05 10:59:20 13934
原创 单例模式与double check
本文主要是讲double check,通常double check比较少用,一般是在高并发的情况下。但是建议大家写单例的时候都用上。单例模式分两种:饿汉式与懒汉式,饿汉式是指在类加载时就进行实例化,而懒汉式是指在使用时才进行实例化。代码如下:饿汉式:public class Singleton {private static Singleton s = new Singleton(
2016-11-22 18:37:37 1194
原创 springmvc中的http请求参数与响应
springmvc我想大家都会觉得特别简单,心想不就是接收请求,响应请求嘛!以下谈谈我在开发项目中遇到的一些坑,都是因为概念模糊,知识不准确导致的问题。 首先说一下,http参数的类型,关于文本的类型主要是三种,url后面的参数,post方式的表单参数,这种参数是在请求体中,还有就是ajax调用时,用的json格式的参数,也是在请求体中。以前有一个误解,认为表单如果是post的方
2016-11-22 17:12:26 3080
原创 mysql忘记root密码的完美解决办法
之前在用mac本的时候新装的mysql无法直接进入,总是提示access denied for user root @localhost这个错误,原来是因为没有给root登录权限。用不用密码都有错误,下面就来说说解决办法。因为我用的是mac系统,所以跟Linux稍微有点差别,不过不大。首先必须要将mysql服务停掉,进入到mysql的bin目录下,执行sudo ./mysqld_safe --
2016-11-22 16:25:10 972 1
原创 dependencyManagement与dependencies的区别
本文简单说明了一下dependenies与dependencyManagement的区别,注重maven管理jar包的可操作性与维护性
2016-11-14 20:20:12 832
原创 spring boot创建
首先简单介绍一下spring boot,spring boot并不是一个全新的框架,我现在只能把它认为是一种工具,一种简化spring框架的搭建工具,而它的实质仍然是spring。只是说外面包了一层东西,让搭建spring框架变得更加简单了。创建spring boot的项目需要通过spring initializr这个工具,从本质上来说这是一个web工具,它能帮你生成一个spring boot
2016-11-13 22:06:21 458
原创 详解HashMap的存储结构与hash冲突
面试的时候,我想大家都会被问到关于HashMap的问题,因为这个数据结构可以说是java比较复杂的了,ArrayList与LinkedList都比较简单了,这里就不详说了,单说一下HashMap。在说HashMap之前,首先说一下,LinkedList,LinkedHashSet,LinkedHashMap这些数据结构全是链表,并且是双向链表,就是说可以从前往后找,也可以从后往前找。HashS
2016-10-30 00:51:39 509
原创 final关键字详解
final关键字的作用我想大家应该很清楚了,可以倒背如流了。1.final属性是不可变的2.final方法是不可覆盖的3.final类是不可继承的这篇博客是想再深入细致的说明一下final关键字。首先说一下final属性,final属性分为成员属性和静态属性。我们知道,final属性必须要被显示初始化,且被初始化后不能再被赋值,但是显示初始化可以在三个地方进行,分别是定义的时候
2016-08-31 16:45:44 565
原创 Failed to load class "org.slf4j.impl.StaticLoggerBinder"异常解决办法
在使用maven的时候会报该异常,是因为缺少一个slf4j-log4j的一个联合包如果这时我们只是加入slf4j和log4j的包,是解决不了问题的,我们需要加入以下依赖 org.slf4j slf4j-log4j12 1.7.5 该包是一个联合两个日志的包,之后就可以正常运行了。
2016-07-07 17:41:50 9248 1
原创 javac带package和不带package的运行方式
在初学java时,建议大家使用文本编辑器来写程序,如UltraEdit,Notepad++这一类的工具,而不要使用eclipse,myeclipse这一类的IDE,对于大家打基础一点好处都没有。先说一下源程序中不带package的情况。在使用文本编辑器运行程序时,在windows系统中需要打开cmd,进入到源程序所在目录下。运行javac 文件名.java来编译程序,运行jav
2016-07-06 14:43:48 4031
原创 接收Date类型参数格式的问题
在使用springmvc @RequestBody来接收Date类型参数的时候,当格式不对的时候总会出现异常。给大家推荐几种方法:1.当你接收yyyy-MM-dd格式的日期时,只需要在实体类中相应的字段上面加上@DateTimeFormat(pattern = "yyyy-MM-dd")注解即可。2.当你接收yyyy-MM-dd HH:mm:ss格式的日期时,用上面的方面就不行了,而且会报
2016-06-20 17:39:17 17063 2
原创 浅析@ResponseBody的实际应用
@ResponseBody注解是springmvc中用于方便json与string,实体对象之间转换的一个注解。在controller中我们可以在方法上面添加@ResponseBody注解,这样我们返回实体对象或者字符串时,就会自动转换成json对象传给前端。在spring4.0后,@ResponseBody又可以加在类上,表示该类中的所有方法都加有@ResponseBody,很方便。另一种方式是
2016-06-20 13:03:36 5628 2
原创 简单说一下线程池
线程池是用来方便创建多个线程的一个工具,当需要创建大量线程的时候,用Thread来创建线程已经不合适了,这时就可以使用线程池,通过线程池来控制创建线程。线程池的顶级接口是Executor,我们常用的接口是ExecutorService,该接口是Executor的子接口,创建线程池通过Executors工具类,常用的有两个线程池,newFixedThreadPool,newCachedThreadP
2016-06-16 15:27:44 735
原创 mybatis增删改操作无法返回操作数量的问题
在实际项目中,遇到一个问题,就是用insert, update, delete操作时,无法返回操作的数量,都是返回-2147482646 这一个值。后来在网上查了查,原因是因为mybatis配置的原因。在mybatis里面有一个配置属性defaultExecutorType,当这个值为BATCH时, 返回结果就只有-2147482646 这一个值。defaultExecutorType一共有三个值
2016-06-14 15:36:22 4793 4
原创 详解依赖注入与自动装配
在我面试的时候,常会问面试者一个问题,就是依赖注入有几种方式,发现面试者的回答五花八门,有回答两种的,也有回答三种的,四种的。其实正确的答案是两种:构造器注入和setter注入。 提到依赖注入,就不能不说装配。有些初学者总是会把这两个概念搞混,这个博文就是来跟大家讨论这两个概念以及其中详细的原理。 依赖注入的本质就是装配,装配是依赖注入的具体行为。这就是两者的关
2016-05-29 02:35:02 4380 4
原创 linux系统上面安装redis 3.2
首先从官网下载redis-3.2最新的稳定版本安装前需要先检查操作系统是否安装gcc环境,rpm –qa | grep gcc如果没有就使用yum –y install gcc,来安装。安装好后,将redis安装包解压到/usr/local下面tar xzf redis-3.2.0.tar.gz–C /usr/localcd /usr/loc
2016-05-16 11:42:05 2871
原创 maven项目无法使用jstl解决办法
使用maven项目搭建web项目时,jstl包需要手动导入,所以需要手动添加依赖 javax.servlet jstl 1.2 taglibs standard 1.1.2 添加这两个依赖后,再在jsp页面中引入jstl就可以正常使用了。
2016-05-11 17:20:36 2860
原创 spring rest风格编程
在spring4中提供了rest风格编程的接口Rest URL特点:Rest风格会将参数当成URL的一部分,如在 URL 中实际请求为`/users/1`,1表示userId的值。Controller在获取时,@RequestMapping注解URL对应参数1部分用{userId}来代替,/users/{userId},获取参数时参数类型前加@Pathvariabl
2016-05-10 15:22:04 1502
原创 linux系统安装maven
安装环境:RHEL6.0 64位,JDK8 64位(因为maven是java写的,所以必须要先安装好JDK) maven是没有分32位和64位的,官网有两个版本,一个是zip版本,一个是tar.gz版本,Linux系统要下载tar.gz版本。该版本是解压版的,直接解压即可。 tar -xzvf apache-maven-3.3.9-bin.tar.gz -C /
2016-05-07 15:34:27 586
原创 集合与数组互换
在我们写java代码时,往往比较忽略的组api,就是util下面,这里不光是集合框架,还包括一些工具类,例如Collections, Arrays, Objects等等,这些类的名字有一个共同点,就是名字后面都是会加一个s,而且里面的方法也都是静态方法。今天的这个问题就是要用到这其中的两个工具类。 先说说数组转集合。以前写代码时,总会想到一个问题,就是怎么样直接用元素就可以构造出List,S
2016-05-04 16:40:12 375
原创 实际项目中关于java常量宏替换的实际问题
项目场景:之前在做支付宝对接的时候,遇到一个问题,就是改变定义的static final常量的值之后,并将重新编译好的文件上传到服务器上,发现引用这个常量的代码却没有变成新的值。分析:这是典型的java宏替换的应用,也是因为不理解java宏替换的机制导致的错误。修改问题:只需要将引用该常量新值的java文件重新编译成为class文件,并上传到服务器上,即可。原理
2016-01-28 16:40:49 1788
原创 表单防止自动提交及onSubmit解析
form自动提交是指按回车键后,自动提交表单,为防止自动提交表单,可以在标签中添加事件属性onSubmit = "return false",这样回车提交表单就不会起作用了。现在对自动提交表单的情形作一下测试:1.username: 这种情况会自动提交表单,但是加上onSubmit="return false"之后,就不会了。这是最典型的情况2.表单中有多个文本框
2015-12-24 13:05:38 704
原创 oracle数据文件被误删除后无法启动数据库的解决办法
起因:我在WINDOWS系统上装了ORACLE数据库, 在没有启动ORACLE情况下,把ORACLE表空间文件给删了,下次启动时会报错,如下:ora-01033:oracle initializationg or shutdown in progress 。用DBA用户启动时会报错:某某文件找不到,这个找不到文件就是删除的表空间文件了。分析问题因为数据文件在没有被offli
2015-09-05 18:04:08 2939 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人