自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Spring Boot 启动深究SpringApplication执行流程

在Spring Boot启动初探的文章中,我们了解到@SpringBootApplication注解起到的作用。接下来我们探究一下SpringApplication.run()方法,在应用启动的背后都做了哪些事情。让我对Spring Boot的了解更深一层。演示环境IntelliJ IDEA 2018.2.5 (Ultimate Edition)JDK 1.8Spring Boot 2....

2019-02-21 10:52:45 380

原创 Spring Boot 启动初探@SpringBootApplication秘密

首先Spring Boot为我们在JavaEE的开发提供了很大的便利,减少了我们使用Spring的时候对需要的组件整合相关的配置,Spring Boot帮我们做了很多的自动配置。要想用好这个Spring Boot我们就需要对它非常熟悉,这次我们就来了解一下启动类标记的@SpringBootApplication。演示环境IntelliJ IDEA 2018.2.5 (Ultimate Edi...

2019-01-24 15:49:40 249

原创 Spring Boot 自动配置@Enable的秘密

在Spring Boot项目中,我们只需要引入spring-boot-start-web就能使用web开发相关的功能,而不需要添加任何配置。其实Spring Boot帮我们做好了很多的自动配置,在应用启动的时候依托于@EnableAutoConfiguration注解来激活自动配置的模块。本文中的@Enable和@Conditional我并没有细说,这两部分内容在我之前的文章中有详细的阐述。如果读...

2019-01-21 16:38:20 773

原创 Spring Boot 条件配置@Conditional的秘密

使用Spring Boot开发项目的时候,有时候也会遇到不同的条件加载不同的配置,但是这里的条件不一定是指不同的环境的配置,也可以是系统环境等等。接下来我们就探究一下Spring Boot是给我们提供的@Profile相关的实现,以及一个重要的注解@Conditional的自定义实现。演示环境IntelliJ IDEA 2018.2.1 (Community Edition)Maven 3...

2019-01-15 17:33:07 664

原创 Spring Boot 手动配置@Enable的秘密

在Spring Boot中,我们会经常遇到@Enable***用来激活我们某一个功能性的模块,通过类注解激活后我们就能使用所激活的配置给我们带来的功能。接下来我们就来探究一下这个@Enable***给我们做了哪些工作,或者我们应该怎么通过自定义的方式开发我们自己的功能模块。演示环境IntelliJ IDEA 2018.2.1 (Community Edition)Maven 3.5.4S...

2019-01-08 10:01:03 289

原创 Spring Boot 加载配置多种方式

我们在开发中,总是少不了对项目环境的配置。而且对于不同的环境我们的配置可能是不同的,例如:数据源的配置、日志的级别等。开发,测试,生产每个环境可能配置都不一致,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。下面介绍spring boot提供的Profile实现多场景下的配置切换,方便开发中进行测试和部署生产环境。演示环境JDK 1.8Spring Boot 2.0.6.RELEA...

2019-01-03 17:31:45 338

原创 Spring Boot 加载配置多种方式

在开发Spring Boot应用的时候,也会遇到使用外部配置资源,这些配置资源能够与代码相互配合,避免硬编码 方式,提供应用数据或行为变化的灵活性。也就是说我们需要灵活的用好配置文件,接下来就来介绍获取配置文件的内容的各种姿势。演示环境IntelliJ IDEA 2018.2.1 (Community Edition)Spring Boot 2.1.1.RELEASEMaven 3.3....

2019-01-01 22:09:18 1220

原创 Spring Boot war 包

使用Spring Boot开发的项目部署前,有时候会选择打成war包,不使用jar包的方式。而且我也发现了很多关于项目打war包的文章,但是在我学习Spring Boot 的时候看到了官方的Demo关于web-jsp的Spring Boot#spring-boot-samples/spring-boot-sample-web-jsp配置的pom.xml非常的简洁,引发了我的尝试。演示环境JD...

2018-12-28 14:41:04 242

原创 Tomcat linux服务器文件上传问题

在使用Tomcat做文件上传的时候,有时候因为开发环境和生产环境的不同,而导致出现意料之外的错误。比如开发环境是Windows而生产环境则是Linux,在部署完项目的时候,就会发现上传文件突然就不行了。接下来我们来看看是什么原因导致的。演示环境Tomcat 8.5Centos 7问题解决无法上传的问题一般我们上传文件,都不会选择项目子目录下。虽然这样不需要做特别处理也不会出现这个问...

2018-12-27 09:45:20 1854

原创 Tomcat 重复加载项目

在我们使用一个Tomcat实现了多端口多域名访问项目后。如果配置不当,随之而来的问题就是Tomcat启动时项目重复加载,同一个项目会被加载多次;如果一个Tomcat里面的项目较多或者服务器的配置低,就会引发服务器的运行严重缓慢,占用很多系统资源,很容易就出现了内存溢出。演示环境Tomcat 8.5导致的原因我们在配置项目通过域名访问的时候,会有这样的配置:<Host name=...

2018-12-25 17:23:13 416

原创 Spring Boot 创建HelloWord应用

学一门技术我们大多都是以Hello Word来开始的,当我们运行程序看到正常的输出Hello Word会使自己无比的兴奋。接下来我们来介绍以不同的姿势创建Spring Boot项目并编写Hello word程序。演示环境JDK 1.8Maven 3.5.4IntelliJ IDEA 2018.2.5 (Ultimate Edition)Spring Boot 2.1.1.RELEASE...

2018-12-21 13:40:44 188

原创 tomcat 实现多端口多域名访问

在我们部署项目到Tomcat的时候,有时候会配置通过域名访问项目。接下来我们就来了解一下多域名多端口访问项目的相关配置。演示环境Tomcat 8.5进行配置多端口访问当一个项目需要使用多个端口号去访问的时候,只需要在Service 标签下进行这样简单的配置一下就好:<Connector port="8080" protocol="HTTP/1.1&amp

2018-12-17 13:08:03 258

原创 菜鸟先飞之HQL语句的运用

HQL语句概述 HQL是Hibernate Query Language的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。用法 使用经典的的数据库表关系模型学生选课:student(学生表)、course(课表)、sc(成绩表)1) FROM子句的使用 from子句的查询可以使用全限定名进行查询,也可以使用别名进行查询。/

2018-01-25 15:01:56 471

原创 菜鸟先飞之二维码zxing解析

前言我在之前的文章中讲了如何用js快速生成二维码和怎么用zxing工具来生成二维码,我们的二维码是生成了,但是我们怎么去解析一个二维码呢,接下来介绍用zxing解析二维码准备工作需要准备的东西就和zxing生成二维码一样,请参考我的上一篇博客。传送门:http://blog.csdn.net/happy_cloudlife/article/details/788

2017-12-21 20:56:28 369

原创 菜鸟先飞之二维码zxing生成

前言我在上篇文章中讲了如何用js快速生成二维码,这次我们来看看怎么用zxing工具来生成二维码。准备工作首先去GitHub上下载所需要的zxing的工程文件文件。地址是:https://github.com/zxing/zxing同样是找到发行版本,下载zip格式的文件。解压文件,找到我们所需要的源文件,然后创建一个java的

2017-12-21 16:00:52 357

原创 菜鸟先飞之二维码jquery-qrcode插件生成

二维码的概述二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。二维码的生成工具java生成二维码常用的有jquery的jquery-qrcode插件、qrcode和zxing,单单对于生成二维码来说,还是jquery-qrcode插件生成来

2017-12-21 15:28:31 630

原创 菜鸟先飞之SVN_服务端和客户端的使用

1、首先打开VisualSVN Server Manager2、创建版本仓库3、添加用户4、导入代码到版本仓库选中文件夹右击 > TortoiseSVN > import 5、客户端检出代码在桌面空白处单击右键,选择SVN检出

2017-10-24 15:17:46 294

原创 菜鸟先飞之SVN_客户端安装

客户端安装

2017-10-24 14:42:56 296

原创 菜鸟先飞之SVN_服务器端安装

1、去官网下载VisualSVN server下载链接:https://www.visualsvn.com/server/download/2、双击安装包,开始安装下一步勾选后继续下一步不用做任何修改,继续下一步选择标准版选择好位置和端口后,下一步点击Install,

2017-10-22 17:45:27 369

原创 菜鸟先飞之JAVA_网络编程

网络编程概述计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程,就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。网络编程三要素1)IP每个设备在网络中的唯一标识,每台网络终端在网络中都有一个独

2017-10-22 15:53:08 291

原创 菜鸟先飞之JAVA_反射

反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法,所以先要获取到每一个字节码文件对应的Class类型的对象。获取Class对象

2017-10-18 12:20:53 446

原创 菜鸟先飞之JAVA_多线程

多线程的概述线程是程序执行的一条路径, 一个进程中可以包含多条线程,多线程并发执行可以提高程序的效率, 可以同时完成多项工作。并发和并行的区别,并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU);并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。多线程的实现方

2017-10-16 12:05:19 265

原创 菜鸟先飞之JAVA_IO流

IO流概述IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中,流按流向分为两种:输入流,输出流。流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的。字节流的抽象父类:InputStream和OutputStream; 字符流 : 字符流只能操作纯字符数据,比较方便。字符流的抽象父类:

2017-09-29 12:35:04 277

原创 菜鸟先飞之JAVA_File类

File类的概述文件和目录路径名的抽象表示形式,File应该是一个路径, 文件路径或者文件夹路径,路径分为绝对路径和相对路径,绝对路径是一个固定的路径,从盘符开始;相对路径相对于某个位置,在eclipse下是指当前项目下。File类的构造方法File(String pathname):根据一个路径得到File对象File(String paren

2017-09-29 10:17:47 288

原创 菜鸟先飞之jAVA_异常

异常的概述异常就是Java程序在运行过程中出现的错误。异常的分类Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。Error一般是服务器宕机,数据库崩溃等情况。

2017-09-27 13:04:03 336

原创 菜鸟先飞之JAVA_泛型上下界详谈

这两天在接触泛型的时候,发现这个泛型的上下界比较抽象,不好理解。经过查阅资料,解决了这个问题,现在分享一下心得。泛型上下界的介绍?exdends E:接收E类型或者E的子类型对象,上界。?super E:接收E类型或者E的父类型,下界。上下界的使用场景一般在存储元素的时候都是用上界,因为这样取出都是按照上界类型来运算的。不会出现类型的安全隐患。

2017-08-24 14:22:56 767

原创 菜鸟先飞之JAVA_集合

集合框架集合的由来数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义。java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。数组和集合的区别区别1 :数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值集合只能存储引用数

2017-08-23 12:38:39 276

原创 菜鸟先飞之JAVA_泛型

泛型泛型的由来通过Object转型问题引入, 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。泛型好处提高安全性(将运行期的错误转换到编译期), 省去强转的麻烦泛型基本使用泛型使用注意事项前后的泛型必须一致,或者后面的泛型可

2017-08-13 17:45:33 277

原创 菜鸟先飞之JAVA_其他类

Math类Math类的概述Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。成员方法public static int abs(int a)返回 int 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。public static double ceil(double a)

2017-08-09 11:02:30 282

原创 菜鸟先飞之JAVA_正则表达式

正则表达式的概述是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。字符x 字符 x\\ 反斜线字符\0n 带有八进制值 0 的字符 n (0 <= n <= 7)\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <=

2017-08-07 17:32:48 432 2

原创 菜鸟先飞之JAVA_StringBuffer类

StringBuffer类概述线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。StringBuffer的构造方法public StringBuffer():无参构造方法public StringBuffer(int capacity):指定容量的字符串缓冲区

2017-08-06 10:59:06 303

原创 菜鸟先飞之JAVA_String类

String类的概述String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。String类的常见构造方法public String() 空参构造public String(byte byte

2017-08-05 11:02:17 328

原创 菜鸟先飞之JAVA_Object类

Object类概述类层次结构的根类所有类都直接或者间接的继承自该类构造方法public Object()回想面向对象中为什么说:子类的构造方法默认访问的是父类的无参构造方法Object类的hashCode()方法public int hashCode()a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。b:不同对象的,hashCod

2017-08-05 10:58:35 299

原创 菜鸟先飞之JAVA_内部类

内部类访问特点 内部类访问特点内部类可以直接访问外部类的成员,包括私有。内部类之所以能获取到外部类的成员,是因为他能获取到外部类的引用外部类名.this外部类要访问内部类的成员,必须创建对象。外部类名.内部类名对象名 = 外部类对象.内部类对象;成员内部类被静态修饰后的访问方式是:外部类名.内部类名对象名 = 外部类名.内部类对象;局部内部类访问局部变量必须用f

2017-07-24 15:24:51 310

原创 菜鸟先飞之JAVA_抽象类和接口

抽象类1、抽象类的概述抽象就是看不懂的2、抽象类的特点1)抽象类和抽象方法必须用abstract关键字修饰例:abstract class Demo {}public abstract void test();2)抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口3)抽象类不能被实例化,但是可以按照多态的方式,由具体

2017-07-20 18:02:44 351

原创 菜鸟先飞之jAVA_面向对象特征

创建一个对象的步骤1、Student s =new Student();         2、Student.class  加载进内存         3、声明一个Student类型引用s         4、在堆内存创建对象,         5、给对象中属性默认初始化值         6、属性进行显示初始化         7、构造方法进栈,对对象中的属性赋值,构

2017-07-18 20:40:50 322

原创 菜鸟先飞之JAVA_static关键字

Static关键字的特点1、  随着类的加载而加载。2、  优先于对象存在。3、  被类的所有对象共享。也就是说,如果每个成员变量是被所有的对象所共享的,那么它就应该定义为静态。4、  可以通过类名调用。a)        其实它本身也可以通过对象名调用b)        推荐使用类名调用c)        静态修饰的内容一般是,与类相关的类成员

2017-07-17 09:56:39 294

原创 菜鸟先飞之JAVA_内存分配

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 栈内存:       存储内容:        1、每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中。2、每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。3、栈分为3个部分:基本类型变量区、执行环境上下文、操作指令

2017-07-15 11:08:46 354

原创 菜鸟先飞之JAVA_面向对象概述

面向对象思想概述面向过程思想概述 第一步第二步 面向对象思想概述 找对象(第一步,第二步) 面向对象思想特点 是一种更符合我们思想习惯的思想可以将复杂的事情简单化将我们从执行者变成了指挥者 角色发生了转换面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情。面向对象设计 其实就是在管理和维护对象之间的关系。面向对象特征 封装(encapsulation)继承(

2017-07-15 10:08:15 263

原创 菜鸟先飞之JAVA_数组

数组概述和定义格式说明为什么要有数组(容器) 为了存储同种数据类型的多个值数组概念数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型。数组定义格式 数据类型[] 数组名 = new 数据类型[数组的长度];数组的初始化动态初始化什么是数组的初始化 就是为数组开辟连续的内存空间,并为每个数组元素赋予值 如何对数组进行初始

2017-07-14 15:06:06 257

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除