Java Engineer
文章平均质量分 68
Java SE 、Java EE
欢迎各位Java engineer,各位大拿、大佬围观参与,相互学习
Lambo Chen
Life is so simple, I do not have complicated thoughts.
Github: LamboChen
展开
-
浅谈 Java 多版本发布
文章目录1. 契约精神2. 版本号3. 一方库版本设计4. 二方库版本设计4.1. 理解“高版本向下兼容”5. 三方库版本设计6. Web API 版本设计1. 契约精神什么是契约?百度百科:https://baike.baidu.com/item/%E5%A5%91%E7%BA%A6/2874688维基百科:https://zh.wikipedia.org/zh/%E5%A5%91%E7%BA%A6相关概念:Design by Contract (契约式设计)Contract-First原创 2020-05-24 17:20:38 · 637 阅读 · 0 评论 -
Mockito 助你实现真正的单元测试
文章目录1. 扯犊子2. 一个字,干3. Mockito 闪亮登场3.1. 引入依赖3.2. 测试代码3.4. 为啥是真正的单元测试4. 参考1. 扯犊子话不多说,单元测试,知道的卅?mock 数据? 也懂的卅?好,上菜!!!2. 一个字,干业务逻辑说明: MockitoService 调用 MockitoDao, 需要对 service 进行测试待测试代码:MockitoServ...原创 2020-05-01 19:19:34 · 945 阅读 · 0 评论 -
【Spring】一个小故事带你了解 Spring IoC
文章目录1. 前言1. 前言本文参考 imooc 视频教程总结而来, 通过 小红同学 幻想自己是有车一族下班回家原创 2020-04-04 01:03:19 · 482 阅读 · 0 评论 -
SpringBoot读取配置文件
1、properties、yml文件读取2、静态变量赋值配置属性3、setter 注入4、Environment 方式获取原创 2019-10-20 11:39:48 · 1551 阅读 · 0 评论 -
SpringBoot解决跨域问题
前言跨域问题,是web开发都绕不开的难题。但我们首先要明确以下几点跨域只存在于浏览器端,不存在于安卓/ios/Node.js/python/ java等其它环境跨域请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。之所以会跨域,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。浏览器出于安全的考虑,使用 XMLHt...原创 2019-01-27 14:21:45 · 19130 阅读 · 5 评论 -
SpringBoot集成Kaptcha实现图形验证码
前言相信大家在浏览网页的时候,经常会碰到人机校验。很经典的要属Google的人机校验,用多张图片进行点击校验。可以说是对于我们人类来说就是很烦的啦。烦归烦,但是为了安全着想,我们还是需要为自己的项目加上验证码机制,特别是一些防刷的接口调用下。今天我们就来学习简单的图形验证码实现。环境准备SpringBoot DEMO,Maven项目。创建SpringBoot项目很简单,Intellij I...原创 2019-01-25 14:15:53 · 4527 阅读 · 5 评论 -
Intellij IDEA 2017创建SSM入门项目及相关配置
前言本文主要讲解Intellij IDEA创建SSM入门项目本文不会讲解SSM的理论知识本文所建项目未用到maven进行管理本文篇幅很长,请配同目录享用环境说明Intellij IDEA 2017.2.6Apache-tomcat-8.5.23jdk 1.8MySQL 5.7Windows 10版本说明Spring-4.3.14MyBatis-...原创 2018-02-05 17:45:27 · 7550 阅读 · 3 评论 -
MyBatis入门【十二】 Spring整合MyBatis基础
整合思路:需要Spring通过单例方法管理SqlSessionFactorySpring和MyBatis整合生成代理对象,使用SqlSessionFactory创建SqlSession(Spring和MyBatis整合自动完成)持久层的mapper都需要spring进行管理在applicationContext.xml配置sqlSession和数据源配置dbcp数据源(Sp原创 2018-01-31 17:50:18 · 376 阅读 · 0 评论 -
MyBatis入门【八】一对一查询之resultType
前言本文主要讲解入门项目的基本知识本文乃是我学习笔记总结,不足之处,还望指点本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释本文中为了清晰讲解基础知识,其中的代码并未完整项目需求需求查询一个订单信息,关联查询创建订单的用户信息(大家自行脑补什么订单吧)SQL语句确定查询的主表:订单表 确定查询的关联表:用户表 (相信大家也清楚简单电商平台原创 2018-01-31 17:08:38 · 233 阅读 · 0 评论 -
MyBatis入门【九】一对一查询之resultMap
前言本文主要讲解入门项目的基本知识本文乃是我学习笔记总结,不足之处,还望指点本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释本文中为了清晰讲解基础知识,其中的代码并未完整项目需求需求查询一个订单信息,关联查询创建订单的用户信息(大家自行脑补什么订单吧)SQL语句确定查询的主表:订单表 确定查询的关联表:用户表 (相信大家也清楚简单电商原创 2018-01-31 17:21:55 · 307 阅读 · 0 评论 -
MyBatis入门【十】一对多查询
前言本文主要讲解入门项目的基本知识本文乃是我学习笔记总结,不足之处,还望指点本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释本文中为了清晰讲解基础知识,其中的代码并未完整项目需求需求查询订单及订单明细的信息(大家自行脑补什么订单吧)SQL语句确定查询的主表:订单表 确定查询的关联表:订单明细表 (相信大家也清楚简单电商平台数据库的吧)原创 2018-01-31 17:33:45 · 239 阅读 · 0 评论 -
MyBatis入门【十一】resultMap小结及延迟加载
resultType:作用:将查询结果按照sql列名pojo属性名一致性映射到pojo中场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示再页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中的是pojo)即可resultMap:使用association和collection完成一对一和一对多的原创 2018-01-31 17:39:56 · 409 阅读 · 0 评论 -
MyBatis入门【一】MyBatis框架基本概念
今天开始就正式进入学习MyBatis框架的光明大道了,在正式学习之前先来刷刷框架学习前的副本。百科MyBatis百度百科MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“in原创 2018-01-29 23:53:07 · 1136 阅读 · 0 评论 -
MyBatis入门【二】入门项目-原始DAO开发
前言本文主要讲解入门项目的基本知识本文乃是我学习笔记总结,不足之处,还望指点本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释本文中为了清晰讲解基础知识,其中的代码并未完整SqlMapConfig.xml相关相信大家在学习MyBatis之前肯定对于项目的创建已经熟到想吐的地步了吧(哈哈)在这里就不从零开始创建项目了,请读者自行创建项目(在这里创建简单的原创 2018-01-30 00:29:53 · 185 阅读 · 0 评论 -
MyBatis入门【三】Mapper开发基础
前言在MyBatis的mapper开发中需要编写mapper.xml映射文件编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象开发规范1、在mapper.xml中namespace等于mapper接口地址 "mapper接口全路径">2、mapper.java接口中的方法名和mapper.xml中statemen原创 2018-01-30 00:38:00 · 435 阅读 · 0 评论 -
MyBatis入门【四】SqlMapConfig.xml文件属性详解
SqlMapConfig文件简要SqlMapConfig.xml为MyBatis框架核心配置文件,SqlMapConfig.xml配置模板 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> c原创 2018-01-30 00:52:20 · 260 阅读 · 0 评论 -
MyBatis入门【五】输入映射、输出映射
输入映射通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、pojo包装类型包装类示例public class UserQueryVo{ //在这里包装所需要的查询条件 //用户查询条件 private UserCustom getUserCustom(){ return userCustom; }原创 2018-01-30 01:01:46 · 240 阅读 · 0 评论 -
MyBatis入门【六】动态SQL
在MyBatis中,运用动态SQL可以进行动态的添加操作数据库的条件,使操作数据库更加灵活代码示例select id="findUserList" parameterType="UserQueryVo全路径/别名" resultMap="UserCustom全路径"> SELECT * FROM USER where> if test="userCus原创 2018-01-30 01:11:35 · 177 阅读 · 0 评论 -
MyBatis入门【七】入门小结
mybatis执行过程1、配置mybatis的配置文件,SqlMapConfig.xml(名称不固定)2、通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂SqlSessionFactory在实际使用时按单例方式管理3、通过SessionFactory创建SqlSessionSqlSession是一个面向用户接口(提供操作数据库方法),实现原创 2018-01-30 09:12:51 · 213 阅读 · 0 评论 -
Spring入门之解决HibernateTemplate.save()不能写入数据
当我们用Spring+HibernateTemplate整合项目时,会遇到这样一个问题:向数据库中写数据时,不报错也没有异常抛出,提示写入成功,但就是在数据库中并没有数据写入成功。* 问题原因 *数据被缓存了,但未flush解决方法在save方法后添加hibernateTemplate.flush();推荐: 在hibernate.cfg.xml文件中添加:propert原创 2018-01-28 09:57:30 · 5119 阅读 · 3 评论 -
Java Spring Controller 获取请求参数的几种方法详解
1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。若”Content-Type”=”application/x-www-form-urlencoded”,可用post提交url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=11111转载 2018-01-28 14:21:31 · 1342 阅读 · 0 评论 -
Hibernate入门之XXX.hbm.xml文件配置详解
Hibernate的核心就是对象关系映射,对象和关系型数据库之间的映射通常使用XM了文档来实现。映射文件的命名规则为*.hbm.xml主体框架:<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.o原创 2018-01-26 19:37:38 · 5889 阅读 · 1 评论 -
Intellij IDEA创建Spring项目之基于Aspectj的AOP操作(注解方式)
前言:本文采用注解的方式进行Spring中基于Aspectj的AOP操作。且此文是在已经了解了Spring中基于Aspectj的AOP操作原理的基础上,再利用IDEA创建项目如需了解使用XML配置文件的方式,请移步Intellij IDEA创建Spring项目之基于Aspectj的AOP操作本文采用创建项目的形式讲解,并非讲AOP原理环境:Intellij IDEA 2原创 2018-01-25 21:32:46 · 7924 阅读 · 1 评论 -
Spring入门之事务管理【一】XML配置文件方式
前言:本文讲解Spring的事务管理(XML配置文件方式)实现本文是通过一步步创建项目的方式讲解本文主要是讲具体的操作,对于事务管理的原理并不会深入讲解环境:Intellij IDEA 2017 CI具体步骤1、新建Spring项目具体项目名、类名及路径: 不清楚怎么创建Spring项目的?猛点Intellij IDEA创建Spring的Hello W原创 2018-01-26 03:36:26 · 529 阅读 · 0 评论 -
Spring入门之事务管理【二】注解方式
前言:本文讲解Spring的事务管理(注解方式)实现本文是通过一步步创建项目的方式讲解本文主要是讲具体的操作,对于事务管理的原理并不会深入讲解环境:Intellij IDEA 2017 CI具体步骤1、创建Spring项目如果不清楚怎么创建项目,请移步Spring入门之事务管理【一】XML配置文件方式OrdersDao类:public cla原创 2018-01-26 03:48:47 · 408 阅读 · 0 评论 -
Spring入门之JdbcTemplate【一】增加、删除、修改数据库表数据
前言:本文主要讲解Spring中JdbcTemplate进行增加、删除、修改数据库表数据如需了解查询操作,请移步我的下一篇文章Spring入门之JdbcTemplate【二】查询数据库表数据本文主要通过代码的形式讲解JdbcTemplate的使用,并不会深入讲解其基本原理环境:Intellij IDEA 2017 CI1、基本操作1)设置数据库信息 即实例化Dri原创 2018-01-26 04:02:15 · 18701 阅读 · 1 评论 -
Spring入门之JdbcTemplate【二】查询数据库表数据
前言:本文主要讲解Spring中JdbcTemplate进行查询数据库表数据本文主要通过代码的形式讲解JdbcTemplate的使用,并不会深入讲解其基本原理环境:Intellij IDEA 2017 CI1、User类(实体类)package spring.entity;public class User { private String usern原创 2018-01-26 04:08:36 · 2030 阅读 · 0 评论 -
Spring入门之C3P0连接池
前言本文讲解Spring配置c3p0连接池操作本文通过新建项目的形式讲解,并非讲解c3p0连接池原理连接的是MySQL数据库环境Intellij IDEA 2017 CI具体步骤1、新建Spring项目新建Spring项目,并创建相关类、路径及applicationContext.xml配置文件UserDao类(只在测试时用,和配置连接池无关):原创 2018-01-26 04:42:14 · 1038 阅读 · 0 评论 -
Spring的Bean管理(注解方式)
注解介绍1、代码中特殊的标记,使用注解可以完成功能2、注解写法 @注解名称(属性名称=属性值)3、注解可以用于类、方法、属性上Spring的Bean管理(注解方式)Spring注解开发准备:1、导入jar包1)导入基本jar包2)导入aop的jar包2、创建类、方法public class User { public void add(原创 2018-01-25 13:32:58 · 425 阅读 · 0 评论 -
Intellij IDEA创建Spring项目之基于Aspectj的AOP操作(XML配置方式)
前言:本文将使用Intellij IDEA 创建项目的方式讲解Spring基于AspectJ的AOP操作环境说明:Intellij IDEA 2017 CI具体步骤1、新建Spring项目新建Spring项目 填写项目名称和项目路径 Finish2、创建相关类Book类: public class Book { public原创 2018-01-25 19:04:29 · 10961 阅读 · 5 评论 -
Intellij IDEA创建spring MVC项目
相信各位未来的Java工程师已经接触到了spring MVC这个框架的强大之处,看了很多的教程,都是eclipse的,在intellij IDEA这个强大的工具面前居然不能很顺畅的,今天我就带领大家用IDEA创建Hello World程序。注:1、本文只讲解怎么用intellij IDEA进行创建spring MVC项目,并不会讲解具体的spring MVC框架基础,如需了解框架原理,请移原创 2018-01-23 17:25:14 · 8910 阅读 · 3 评论 -
Spring属性注入【一】 注入方式介绍
属性注入创建对象时候,向类的属性设置值属性注入方式第一种:使用set方法注入public class User{ private String name; public void setName(String name){ this.name = name; }}//测试注入User user = new User();us原创 2018-01-24 18:31:29 · 444 阅读 · 0 评论 -
Spring属性注入【二】 注入对象类型属性
注入对象类型属性(重点)实现思想:1、创建service类和dao类 2、在service得到dao对象 (以service中内嵌dao为例)具体实现过程:1)在service中把dao作为类型属性2)生成dao类型属性的set方法3)配置文件中完成注册UserService类:public class UserService{ //定义dao类型属原创 2018-01-24 18:38:01 · 421 阅读 · 0 评论 -
Spring属性注入【三】 复杂类型注入
P名称空间注入applicationContext.xml配置文件://引用xmlns:p="http://www.springframework.org/schema/p"bean id="person" class="Person全路径" p:pname="Bob">bean>复杂类型注入复杂类型:1、数组2、list集合3、map集合4、prope原创 2018-01-24 18:46:12 · 468 阅读 · 0 评论 -
Spring整合web项目原理
IOC和DI区别1、IOC:控制反转,把对象创建交给spring进行配置2、DI:依赖注入,向类里面的属性中设置值3、关系:依赖注入不能单独存在,需要在IOC的基础上完成操作Spring整合web项目原理1、加载spring核心配置文件ApplicationContext context = new ClassPathXmlApplicationConte原创 2018-01-24 18:50:13 · 226 阅读 · 0 评论 -
Intellij IDEA创建Spring的Hello World项目
前言本文主要是进行Intellij IDEA 2017 CI进行创建第一个Spring项目,并测试成功,并非讲解Spring原理环境Intellij IDEA 2017 CIJDK 1.8具体步骤1、新建项目勾选Spring 2、项目名称和路径、Finish项目名称建议见名知意,项目路径看个人,我这里就使用默认路径 等待jar包下载3、导入jar包原创 2018-01-24 11:38:39 · 10167 阅读 · 4 评论 -
Spring的Bean管理(XML配置文件方式)
bean实例化三种方法在spring里面通过配置文件创建对象 bean实例化三种方式实现:第一种:使用类的无参数构造创建(重点)需要在类中有无参构造函数,如果类中没有无参数构造,出现异常User类:public class User{ public void add(){ System.out.println("add()方法"); }}原创 2018-01-24 14:09:12 · 651 阅读 · 0 评论 -
Spring MVC自定义拦截器
前言:1、本文适合已经理解了Spring MVC相关知识,并能够自主进行创建Spring MVC入门项目的前提下,对拦截器有了一定的了解的读者 2、本文讲解的是怎么自定义拦截器,并非讲解拦截器基本原理,如需了解拦截器原理等理论知识请移步其他教程,谢谢!如需了解Spring MVC入门项目创建流程,请转Intellij IDEA创建spring MVC项目(博主带领你一步一步的创建Hell原创 2018-01-23 22:15:24 · 467 阅读 · 0 评论 -
Spring MVC架构原理分析
注:本文是我在学习Spring MVC基础的时候看视频教程所做的笔记,不足之处,还望指正。 视频链接:Spring MVC由浅入深教程MVC在B/S系统下的应用(图片来自视频) Spring MVC框架Spring MVC执行过程1、发起请求到前端控制器(DispatcherServlet) 2、前端控制器请求HandlerMapping查找Handler原创 2018-01-24 00:10:51 · 357 阅读 · 0 评论 -
图解myeclipse显示classes文件
在使用myeclipse进行创建web项目的时候,在创建时就已经创建了classes文件,并存放于WEB-INF文件夹下,但我们打开项目后是看不到classes文件夹的,如果我们手动创建classes文件夹,则会提示classes文件夹已存在。本文将带领大家一步一步的开启classes文件夹的显示如果是2017以下的版本:右键 WEB-INF文件夹,点show in,点击navigat原创 2018-01-11 10:30:55 · 1647 阅读 · 0 评论