自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用Thread中的sleep方法实现时钟效果

package Test;import java.text.SimpleDateFormat;import java.util.Date;public class Test18 { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:m...

2019-12-08 17:39:18 476

原创 如何让三个线程有序执行?

利用Thread中的join方法代码如下:package Test;public class Test17 { public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override public void run() { // TODO Auto...

2019-12-08 17:24:43 361

原创 在springboot中使用国际化

第一步,编写国际化配置文件,抽取页面需要显示的国际化消息在resources目录下新建一个i18n文件夹,并在该文件夹中建立 login_en_US.properties、login_zh_CN.properties语言配置文件。由于springboot中原来帮我们自动配置国际化的标准是文件名是messages,所以我们要在application.properties中写上:spring...

2019-12-03 15:27:49 466

原创 springboot中使用webjars

为什么要使用webjars:WebJars是将Web前端Javascript和CSS等资源打包成Java的Jar包,这样在Java Web开发中我们可以借助Maven这些依赖库的管理,保证这些Web资源版本唯一性。在pom.xml文件中添加以下代码来使用bootstrap或者jquery<dependency> <groupId>org.webjars&l...

2019-12-03 15:01:09 393

原创 @Value获取值和@ConfigurationProperties获取值比较

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;@Value("${person.last-name}")private String lastName;如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;@Component@ConfigurationProperties(p...

2019-11-24 22:20:13 163

原创 将application.properties中的属性值映射到组件中与将外部属性文件中的属性值映射到组件

1. 将application.properties中的属性值映射到组件中:Person.class/** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定; * prefix = "person":配置文件中哪个下面的所有属性进行一一映射 *...

2019-11-24 22:14:33 502

原创 properties配置文件在IDEA中出现乱码问题

但这种修改的作用范围只是当前项目,如果要全部项目都设置,就按照以下步骤进行。到这里,就成功设置了一个全局的解决字符编码问题的功能。...

2019-11-24 21:46:28 356

原创 springboot中如何将一个web项目打包成一个jar包,并执行

在IDEA右侧侧边栏中找到Maven,然后按照上图操作,最后在控制台找到jar包的位置然后找到jar包,按住shift选择在此处打开命名窗口最后在浏览器中输入localhost:8080/hello...

2019-11-24 11:13:38 1776

原创 springmvc中的@Controller和@RestController之间的关系

@RestController其实就是@Controller和@@ResponseBody的组合使用。@Controller表示这个类是一个控制器类,而被@ResponseBody标注的类或方法表示向页面直接传输数据,对象也可以用json传递给页面。...

2019-11-24 10:51:19 185

原创 python中如何去掉print函数的默认自动换行行为

在python中输出语句的时候经常会遇到前后两个输出字符要出现在同一行的需求,但是print()默认是换行的,如何将print()的换行取消。可以使用如下方式实现:print('hello',end='')print('world')此时输出的是helloworld,这两段语句的含义就是把end里面默认的换行符用’‘空代替,如果想两个字符之间用空格相隔,就写成end=’ ’...

2019-10-29 16:59:22 3035

原创 Java实现验证码步骤详解

在生活中,我们登陆一个网站的时候经常会碰到需要登陆的界面,而这种界面的通常会有一个输入框,后面跟着一个图片,叫你在输入框中输入图片中的数字和字母,完成登录校验。页面如下图所示:而这种验证码是怎么实现的呢?下面就来写一个小项目,来试一下这个登录界面上加上一个验证码:(本项目使用spring+mybatis+servlet实现)系统的基本流程就是:用户通过前台表单提交信息给servlet,s...

2019-10-27 17:21:02 1984

原创 关于进行mybatis和spring的初步整合中出现java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport

只需引入下列两个jar包即可

2019-10-24 17:35:25 305

原创 java中如何判断一个对象的数据类型

obj.getClass().getName()

2019-10-23 19:20:37 2303

原创 spring中如何给Bean的属性赋值

1.通过构造方法设置值<constructor-arg index="1" name="name" type="java.lang.String" value="张三 "></constructor-arg>2.设置注入(通过 set 方法)2.1 如果属性是基本数据类型或 String 等简单<bean id="peo" class="com.bjsxt....

2019-10-23 19:12:06 681

原创 Spring创建对象的三种方式

1.通过构造方法创建无参构造创建:(默认情况. )有参构造创建:需要明确配置1.2.1 需要在类中提供有参构造方法1.2.2 在 applicationContext.xml 中设置调用哪个构造方法创建 对象 1.2.2.1 如果设定的条件匹配多个构造方法执行最后的构造方法index : 参数的索引,从 0 开始name: 参数名type:类型(区分开关键字和封装类 int ...

2019-10-23 19:04:31 250

原创 mybatis中设置别名的几种方式及其优先级

在配置文件中配置方式一:配置单个类的别名 type属性中的是类的全类名,alias是类的别名<typeAliases> <typeAlias type="com.zmx.pojo.User" alias="user"/></typeAliases>方式二:扫描整个包中的所有实体类,扫描到的所有实体类的别名是使用类的非大写限定类名注册为别名。(...

2019-10-12 22:34:30 1218

原创 mybatis核心配置文件中的properties引入的外部属性文件与内部的property文件的优先级

今天发现一个问题,在mybatis中引入的外部属性文件和properties中配置的属性谁的优先级高?于是我做了测试。首先在src目录下新建了一个jdbc.properties属性文件,配置如下:username=rootpassword=123mybatis核心配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE...

2019-10-12 22:06:05 427

原创 Files工具类的使用

files.exists() :检测文件路径是否存在public static void main(String[] args) { Path path = Paths.get("D:/Test"); Boolean fileboolean = Files.exists(path); System.out.println(fileboolean); }files.create...

2019-09-27 15:37:54 481

原创 Java设置模式之中介者模式

中介者模式是指用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。适合中介者模式的情景如下:许多对象以复杂的方式交互,所导致的依赖关系使系统难以维护;一个对象引用其他很多对象,导致难以复用该对象。生活中有各种各样的中介机构,这些中介机构给我们的生活带来了诸多便利。例如:房屋中介机构,可以方便租房和卖房。让我们通过一个具...

2019-09-23 16:18:07 314

原创 Java设计模式之访问者模式

访问者模式定义如下:表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各个元素的类的前提下,定义作用于这些元素的新操作。适合访问者模式的情景如下:想对集合中的对象增加一些新的操作;需要对集合中的对象进行很多不同且不相关的操作,而又不想修改对象的类。问题的提出:我们知道,人们认识事物常常有一个循序渐进的过程,不可能是一蹴而就的。例如,某事物经分析后有功能1、功能2、但是或者随着时间...

2019-09-17 17:29:58 104

原创 阿里巴巴Java开发手册之ORM框架

在表查询中,一律不要使用*作为查询的字段列表,需要哪些字段必须明确使用。POJO类的布尔属性不能加is,而数据库字段必须加is_,要求在resultMap中进行字段与属性之间的映射。不要用resultClass作为返回参数,即使所有类属性名与数据库字段一一对应,也需要定义;反过来,每一个表也必然有一个属性与之对应。sql.xml配置参数使用:#{},#param#,不要使用${},此种方式...

2019-09-17 14:13:32 931

原创 阿里巴巴开发手册之SQL语句

不要使用count(列名)或count(常量)来代替count(),count()是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。count(distinct column)计算该列除NULL外的不重复行数。注意,count(distinct column1, column2),如果其中一列全为NULL,那么即使另一列有不同的值,也返回为0。当某一列的值全为N...

2019-09-16 15:56:53 482

原创 阿里巴巴Java开发手册之索引规约

业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。超过三个表禁止join。需要join的字段,数据类型必须一致;当多表关联查询时,保证被关联的字段需要有索引。在varchar字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。页面搜索严禁左模糊或者全模糊,如果需要请通过搜索引擎来解决。如果有order by的场景,请注意利用索...

2019-09-15 16:53:25 545

原创 Java中各集合特点的分析

List(有序,可重复):Vector 底层数据结构是数组,查询快,增删慢,线程安全,效率低。ArrayList 底层数据结构是数组,查询快,增删慢 , 线程不安全,效率高。LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高。Set(无序,唯一):HashSet 底层数据结构是哈希表; 哈希表依赖两个方法:hashCode()和equals() ,执行顺...

2019-09-15 10:08:32 282

原创 Java设计模式之迭代器模式

迭代器模式定义如下:提供一种方法访问一个容器对象中的各个对象,而又勿需暴露该对象的内部细节,是一种只应用于容器对象遍历的设计模式。使用迭代器模式的情景如下:遍历集合对象,不需要知道对象在集合中的存储方式;用户可以同时使用镀铬迭代器遍历一个集合。...

2019-09-15 09:57:52 87

原创 阿里巴巴Java开发手册之建表规约

表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint (1表示是,0表示否)。任何字段如果是非负数,则必须是unsigned。表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下画线中间出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。MySQL在Window下不区分大小写,但在Linux下默认区分大小写...

2019-09-15 08:10:50 308

原创 阿里巴巴Java开发手册之安全规约

隶属于用户个人的页面或者功能必须进行权限控制校验。防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。用户敏感数据禁止直接展示,必须对展示数据进行脱敏。个人的手机号码会显示为158****9119,隐藏中间4位,防止个人隐私泄露。用户输入的SQL参数严格使用参数绑定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL访问数据库。...

2019-09-14 09:22:09 194

原创 Java设计模式之命令模式

命令模式定义如下:将一个请求封装成一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。适合命令模式的情景如下:程序需要在不同的时刻指定、排列和执行请求;程序需要提供撤销操作;程序需要支持宏操作。顾名思义,命令模式一定是要有命令发送者、命令接收者。命令发送者负责发送命令;命令接收者负责接收命令并完成具体的工作。例如,老师通知学生打扫卫生,老师是命令...

2019-09-13 10:57:42 369

原创 阿里巴巴Java开发手册之单元测试

好的单元测试必须遵守AIR原则。单元测试在线上运行时,感觉像空气(AIR)一样并不存在,但在测试质量的保障方面,它却是非常关键的。从宏观上来说,好的单元测试具有自动化、独立性、可重复执行的特点。单元测试应该是全自动执行的,并且是非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。需要人工检查输出结果的测试不是一个好的单元测试,单元测试中不准出现System.out进行人肉...

2019-09-13 09:32:20 661

原创 阿里巴巴Java开发手册之日志规约

日志规约应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API。使用门面模式的日志框架,有利于维护和各个类的日志处理方法统一。日志文件推荐至少保存15天,因为有些异常具备以“周”为频次发生的特点。应用中的扩展日志(如打点、临时监控、访问日志等)命名方式:appName_logType_logName.log。logType为日志类型,推...

2019-09-11 08:58:39 473

原创 mybatis核心配置文件详解

mybatis核心配置信息必须严格按照格式标准进行配置配置名称配置含义配置简介configuration包裹所有配置文件整个配置文件的顶级标签properties属性该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件均可引用此配置中的属性setting全局配置参数用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使...

2019-09-10 14:58:27 5984

原创 在Mybatis中一个方法返回的是一个对象的list集合的时候,ResultType不是写集合的别名,而是集合中保存的对象名

查询语句大多时候都会返回一个对象的集合,可以是多个对象也可以是0个对象,都可以封装成一个列表,所以重要的还是列表中存储的对象的别名。若select id=“getAllUser” resultType=“list”,那是不是可以往里放任何值呢?先放个Integer,再放个Object,后放个String,哪这个List T是什么类型呢?这样就解释不通了,所以当返回的是list集合的时候,我们应该...

2019-09-10 14:02:11 5372

原创 mybatis下载

链接:https://pan.baidu.com/s/1FtIfuOhc_SC3RvUyGWAahw提取码:sik9

2019-09-09 21:23:44 222 1

原创 阿里巴巴Java开发手册之异常处理

Java类库中定义的可以通过预检查方法规避的RuntimeException不应该通过catch的方式来处理,如:IndexOutOfBoundsException,NullPointerException等。异常不要用来做流程控制,条件控制。catch时请分清稳定代码和非稳定代码。稳定代码指的是无论如何都不会出错的代码。对于非稳定代码的catch、尽可能在进行异常类型的区分后,在做对应的异...

2019-09-09 16:12:53 621

原创 Java设计模式之责任链模式

定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。适用使用责任链模式的情景模式如下:有许多对象可以处理用户的请求,应用程序可自动确定谁处理用户请求;希望在用户不必明确指定接受者的情况下,向多个接受者提交一个请求;程序希望动态定制可处理用户请求的对象集合。在企业工作的员工请假问题,假如假期...

2019-09-08 18:04:39 274

原创 阿里巴巴Java开发手册之其他编码规范

其他在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。在velocity调用POJO类的属性时,建议直接使用属性名取值,模板引擎会自动按规范调用POJO的getXxx(),如果是boolean基本数据类型变量(boolean命名不需要加is前缀),会自动调用isXxx()方法。后台输送给页面的变量必须加!var−−−中间是感叹号。如果var=null或者不存在,那么!{va...

2019-09-08 14:39:21 187

原创 阿里巴巴Java开发手册之并发处理

获得单例对象需要保证线程安全,其中的方法也要保证线程安全。资源驱动类、工具类、单例工厂类都需要注意。在创建线程或线程池时,请指定有意义的线程名称,方便出错时回溯。线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。线程池不允许使用Executors创建,而是通过ThreadPoolExecutor的方式创建,这样的处理方式能让编写代码的工程师更加明确线程池的运行规则,规避资源耗尽的...

2019-09-08 14:25:25 188

原创 阿里巴巴Java开发手册之注释规约

类,类属性、类方法的注释必须使用Javadoc规范,使用/*内容/格式,不得使用//XX方式。所有的抽象方法(包括接口中的方法)必须要用Javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。所有的类都必须添加创建者和创建日期。方法内部的单行注释,在被注释语句上方另起一行,使用//注释。方法内部的多行注释,使用/* */注释,注意与代码对齐。所有的枚举...

2019-09-08 10:38:18 2096 1

原创 阿里巴巴Java开发手册之控制语句

在一个switch块中,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case块中,都必须要包含一个default语句并且放在最后,即使它什么代码也没有。在if / else / for / while / do语句中,必须使用大括号。即使只有一行代码,也应避免采用单行的编码方式。if(condition) statements;在高并发场景中,避免...

2019-09-08 10:17:32 244

原创 Java设计模式之原型模式

原型模式是指用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。适用原型实例的场景如下:程序需要从一个对象出发,得到若干个和其状态相同,并可独立变化其状态的对象时;对象创建需要独立于它的构造方法和表示时;以原型对象为基础,并完善对象实例变量是。在计算机程序开发过程中,有时需要为一个实例创建多个实例的情况,这些实例内部成员往往完全相同或有细微的差异,而且实例的创建开销比较大或者需要输入...

2019-09-08 10:03:27 100

空空如也

空空如也

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

TA关注的人

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