自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

feigeswjtu的专栏

菜鸟飛哥成长经历

  • 博客(158)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java反射之类成员

上一篇文章我们讲了怎么获取到类的标识符,比如类的访问权限、接口标识、static标识,final标识、strictfp标识等,下面我们继续跟着官方文档讲解一下怎么获取类的成员,类成员包括以下三种:成员变量、类方法(实例方法和类方法)、构造器(构造方法)。获取方式为了更好的描述,我们做个约定个通配符XXXX,如果是成员变量就代表Field,如果是类方法就代表Method,如果是构造器就代表Constructor

2017-12-30 10:18:36 589

原创 Spring Boot上传文件

Spring Boot上传文件只需要在controller的方法上设置一个MultipartFile 参数即可,当然可以用@RequestParam指定方法名,如果是上传多个file时,可以使用数组,另外也可以用一个成员变量为MultipartFile的类来接收文件和其他参数。 为了演示它,我们需要有页面来上传文件,引入thymeleaf模板引擎。 <dependency> <groupI

2017-12-26 20:33:30 249

原创 Java中普通代码块和static代码块的区别

Java中普通代码块和static代码块的区别。

2017-12-09 10:01:10 1521

原创 Java反射之获取类的标识符

上一篇文章讲了如果获得一个类的类名,有没有什么办法可以获取到类的访问权限、是否是接口、是否是static类,是否final标识、是否strictfg标识等,获取类的注解等。 答案是肯定的。 访问权限、接口标识、static标识,final标识、strictfp标识等这些都是标识Class的标识符。 可以通过Class.getModifiers()获取,然后自己做遍历判断。 Class.get

2017-12-08 16:30:18 720 1

原创 Java反射之查找一个类

Java里面的类型是一个引用或者一个基本类型,类、枚举、或者数组都是继承于java.lang.Object,它们和接口一样都是引用类型,对于这些类型,JVM提供了方式可以在运行中获取对象对应类型,也就是它属于哪个Class。java.lang.class也提供了创建Class和Class对应的对象的方式。本文讲一下目前有哪儿些方式可以获取到一个类(Class)。所有的反射操作的切入点都是java.l

2017-12-07 21:43:20 2159

原创 Java实现AOP的两种方式

知道Spring的都知道Spring的切面编程AOOP(Aspect Oriented Programming),这里我们不讲Spring的切面,后面有机会我们再来解剖Spring的切面编程,我们想讲解一下普通的Java代码中怎么实现AOP,有两种方式实现AOP切面,一种是原生SDK实现,一种是基于三方包cglib。

2017-12-07 14:43:32 39976 4

原创 spring boot集成redis

遵守“约定大于配置”原则的Spring boot集成常用的NO SQL是很方便的,本例拿redis做一个简单的demo,使用Redis的set和get命令。 引入redis的依赖包。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b

2017-12-07 13:59:39 1865

原创 Spring之RestTemplate介绍

RestTemplate设计是为了Spring更好的请求并解析Restful风格的接口返回值而设计的,通过这个类可以在请求接口时直接解析对应的类。 在前一篇文章《搭建简单的Restful风格的web服务》的基础上,我们写一个client调用一下http://localhost:8080/hello这个接口,返回为我们自定义的ResultBean。 先重写一下ResultBean的toString

2017-12-06 17:16:20 664

原创 搭建简单的Restful风格的web服务

笔者最近在学习Spring相关的知识,坚信一句话,任何教程都没有官网教程全面、易懂,所以笔者计划参照官网的教程写一些例子,自己学习一下,也做下记录,由于官方教程大部分都是基于Spring boot,所以笔者也按Spring boot框架来编写代码。 工具用的Idea和包管理器用的通用的Maven,教程。 第一个例子肯定就是程序员的开始——Hello World。 首先我们定义一个类,用来作为R

2017-12-05 23:43:10 1540

原创 Thread之sleep方法

为什么要用sleep,主要是为了暂停当前线程,把cpu片段让出给其他线程,减缓当前线程的执行。 方法的定义: public static void sleep(long millis); public static native void sleep(long millis) throws InterruptedException;通过定义可以看出sleep方法是本地方法,通过系统调用暂停

2017-12-03 10:14:23 129927 3

原创 Spring IO Platform介绍

为什么要用Spring IO Platform今天无意间看到了一个关键词:”Spring IO Platform”,第一直觉是不是有关于IO方面的框架或者包呢,查了一下,居然是为了解决包冲突而生的。做了半年Java Web开发,经常遇到问题,编译没有报错,启动时报一些奇奇怪怪的问题,90%的都是包冲突导致的,虽然有一些包冲突解决插件,比如”Dependency Analyzer”等,也能很容易解决,

2017-11-29 11:28:46 2686

原创 rails中active_record的delete和destroy方法

rails对删除一个active_record对象有两个方法: obj.delete和obj.destroy方法,但是两种方法是有差别的。 delete方法不是在事务里进行删除,也不会触发active_record的回调。而destroy是在事务里处理,并且会触发active_record的回调。 所以要慎用delete。

2017-11-28 10:56:51 1356

原创 Rails的after_commit和transaction_include_any_action?

了解rails的,都知道activerecord有一个after_commit的回调方法,可以在这个方法里做一下提交后的操作,比如同步数据等。 但是如果要区分本次commit是create、update还是delete怎么做呢? 有两种方式: 第一种方式是写多个方法分布处理 after_commit :hook_on_create, :on => :create after_commit

2017-11-28 10:35:54 552

原创 java语言类型

最近在看《深入理解Java虚拟机JVM高级特性与最佳实践》只是看了第一遍,这本书讲的东西都是很底层的东西,基础开发一般用不到,但是让我对Java语言有了很深刻的认识。 市面上语言被分为“解释型”和“编译型”,我们上学时学习的C/C++语言就是编译型的语言,我目前接触过的Ruby、JavaScript是解释型的语言,那么Java语言是解释型的还是编译型的呢? 说成任何一种都是很片面的,Java的执

2017-11-25 15:10:44 1111

转载 Linux中grep命令的12个实践例子

grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum)。sudo apt-get install grep #Debian/Ubuntu sudo yum install grep #RHEL/CentO

2017-10-10 14:26:27 266

原创 java之Thread Dump分析

什么是Thread DumpThread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。

2017-08-20 23:04:25 5872

原创 null强制转任何类型的对象

null能强制转换为任意类型的对象。实例化的对象调用类方法是跟实例化的对象没有直接关系的,只是通过实例找到这个对象的类,进而找到类方法。

2017-08-20 17:46:53 1025

原创 java之hashCode()和equals()详解

背景java开发者手册里有三句关于hashCode和equals的使用规定: - 只要重写 equals,就必须重写 hashCode。 - 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 - 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equals。 并且举了一个例子:

2017-08-08 15:01:28 380

原创 windows 查看端口占用程序

IntelliJ IDEA开发web程序,经常出现结束了程序,重启时发现,端口号被占用,很容易想到程序启动的进程在操作系统里并没有结束,需要手动结束它。 可以使用命令: netstat -ano 来查看占用端口的进程号。 如图: 比如1099的端口占用程序的PID为: 16800。到任务管理器里根据PID查看进程: 结束这个进程重启程序即可。

2017-08-02 11:56:33 436

转载 阿里巴巴Java开发手册

一、 编程规约(一)命名规约【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / Object/name/nameObject / name_ / name / Object$【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意

2017-08-01 19:17:56 1155

原创 java包命名

为什么把包命名单独提出来呢?因为之前的命名一直是有问题的,被别人质疑了,所以这里单独提出来记录一下。 问题是关于包名里的下划线(_)是使用,如果包名的一个层级是多个单词,该不该用下划线分割呢? 答案是不能,多个单词也要使用小写命名,不能用下划线分割。 下面是摘自官方文档的一句话:Package names are written in all lower case to avoid confl

2017-07-28 11:30:17 5931

转载 VO、DTO、DO、PO的概念、区别和用处

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念。概念VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模

2017-07-26 18:12:36 451

原创 mybatis定义xml大于号小于号等会转义的符合处理

mybatis在xml的 <(小于号) 会转换为xml的标示符,有两种方法可以处理。 第一种,用转义符代替: 转义符 符号 说明 < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 " " 双引号第二中是用![CDATA[ ]]>进行说明,不进行转义。 由于特殊符号对程序员很不

2017-07-26 18:00:35 1773

原创 Spring之多线程

通过@Async注解来声明的任务是一个异步任务,那是不是,只要通过@Async注解声明后,就异步执行了呢?但是肯定不是的,需要通过@EnableAsync注解来声明配置类来开启对异步的支持。配置类@Configuration@ComponentScan("ch3.taskexecutor")@EnableAsyncpublic class Config {}服务类@Servicepubli

2017-07-11 19:51:10 412

原创 Bean的初始化和销毁

在我们实际开发中经常遇到需要在Bean初始化之后或者销毁之前做些必要的工作,比如格式化数据等等,Bean的生产和使用都是由Spring控制的,那么怎么做才能再bean被初始化之后或者销毁之前做一些操作呢。 目前有两种方式: 1. Java代码配置形式: 使用@Bean的属性initMethod(相当于xml配置的init-method)和destroyMethod(相当于xml配置的destro

2017-07-11 18:44:12 251

原创 <mvc:resources> 标签

spring mvc 中的标签<mvc:resources mapping="***" location="***">标签是用来进行配置静态资源访问的。 比如以下配置:<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.Dispatch

2017-07-06 13:49:37 2065

原创 Spring注入值(Value注解)

背景Spring开发过程中经常遇到需要把特殊的值注入到成员变量里,比如普通值、文件、网址、配置信息、系统 变量等等。Spring主要使用注解@Value把对应的值注入到变量中。 常用的注入类型有以下几种: 1. 注入普通字符串。 2. 注入操作系统属性。 3. 注入表达式运算结果。 4. 注入其他bean的属性。 5. 注入文件内容。 6. 注入网址信息。 7. 注入属性文件。示例准

2017-07-05 15:19:05 16423 2

原创 freemarker简易教程

引进freemarker的包最近Spring项目的views使用了freemarker这个模板渲染引擎,Spring mvc使用freemarker需要在pom.xml(maven包管理配置)引入一下包: <!-- 引入Freemarker开包 --> <!-- 需要这个包, 因为在配置springmvc freemarker时, 需要用到该包的类 --> <dependenc

2017-07-04 16:10:39 437

原创 Spring 请求参数乱码

背景今天开发了一个Post接口,用来修改Bug的信息,post的参数有中文,作为一个初学者只能上网查查别的解决方案了,大部分的解决方案都差不多,但是参照别人的方案配置上以下配置之后,却没有解决。 配置如下: <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.spri

2017-07-04 14:04:10 464

转载 Spring MVC工作流程图

Spring MVC的工作流程图以及介绍。

2017-07-03 23:16:26 559

原创 Scope注解

Scope 描述了Spring创建一个bean的行为,Spring的Scope有以下几种,通过@Scope注解实现。 1. Singleton: 表示一个容器中只有一个Bean实例,这个配置为Spring的Bean的默认配置。 2. Prototype: 每次注入时,都会新建一个对象。 3. Requst: Web项目中,给每一个http request新建一个示例。 4. Session:

2017-07-03 20:37:34 854

原创 Spring boot 入门介绍

Spring boot 入门介绍最近发现了一本书,特别适合spring入门者使用,书名叫《JavaEE开发的颠覆者:Spring Boot实战》,笔者就是入门者,为了尽快入门,也为了记录一些常用的知识点,笔者会花一个月到两个月的时间更新书本里的常用知识点。这期进行

2017-07-03 14:01:08 300

原创 spring mvc 中文乱码

工作需要,转向了java web的开发,框架还是用了spring mvc,由于是初学者,所以会遇到很多需要或许大神们很容易就解决的小问题,为了避免遗忘,会在遇到问题时记录下来,如果理解或者解释不正确,欢迎大家指正。今天遇到了一个rest接口返回String(中文乱码)的问题,controller代码如下:@RestControllerpublic class TestController {

2017-07-01 10:22:47 303

原创 java中float/double计算丢失精度解决方案

今天线上出现了一个很奇怪的问题,业务需求是从一个服务方获取到商品的价格(元),是字符串形式,例如是String: "9.90",通过一定的方法转换为分存到数据库里却变成了989。开始怀疑是服务给的数据问题,后台写个Test测试一下,尴尬的发现是自己的基础知识太不扎实,对float/double类型的计算认知不够。测试代码如下:public class Test { public s

2017-06-05 20:33:27 7825

原创 接口和实现的命名方式

在看别人的spring项目的时候,发现所有的service都是一个接口和一个或者多个实现,如果说有多个实现定义一个接口,也说得过去,只有一个接口,为什么要定义成接口呢?接口(interface)和实现(Implementation)是java多态的一个实现方式,一个接口可以有多个实现,一个实现类可以实现多个接口,这个概念就不具体讲了。仔细想想,service是什么,翻译过来

2017-05-13 16:45:28 33433 1

原创 Rails的事务和锁

今天订单出了一个库存超卖的问题,查找了很久,才定位到原因,之前用rails也很少用到事务和锁,这里介绍一下它们。

2016-07-10 20:22:45 3596 1

转载 人人都看得懂的正则表达式教程

编写验证规则最流行和最简单的方法就是正则表达式了,但唯一的一个问题是正则表达式的语法太隐晦了,让人蛋疼无比。很多开发者为了在项目中应用复杂的验证,经常要使用一些小抄来记住正则式的复杂语法和各种常用命令。 在这篇文章中,我将试图让大家明白什么是正则表达式,以及如何更轻松地学习正则表达式。  也许你是初学者,那以防万一,我先来讲讲什么是正则表达式吧:

2016-07-05 17:32:41 543

原创 kindeditor使用

神奇的插件kindeditor的使用介绍。

2016-06-14 18:54:24 553

原创 Rails中force index

force index介绍。

2016-06-06 20:30:36 967

原创 Rails中destroy_all和delete_all的差别

Rails删除一个Model对应的表的某些数据有delete_all和destory_all两种方法,本篇文章讲解一下两者的区别。

2016-06-06 16:44:19 4490

Visual Assist X破解

Visual Studio很好用的一个插件,编码的过程中可以进行提示,加快开发进度,适用于VS2010,亲自试用过,有可能不支持其他的版本,里面有破解方法。

2013-08-21

JAVA学生管理系统

完整的JAVA编写的学生管理系统,包括学生信息添加、修改、删除、课程的添加、课程成绩的添加修改等,是一套完全实现学生管理系统的代码。

2012-10-27

空空如也

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

TA关注的人

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