Java
文章平均质量分 67
Java基础、SpringMVC、Spring、MyBatis 等主流开源框架、SpringBoot...
bei-zhen
曾就职于世界五百强 前端工程师
展开
-
SpringBoot——Thymeleaf快速入门(五)
一、什么是ThymeleafThymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较于其他的模板引擎,它有如下四个极吸引人的特点动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行开箱即用:它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果。同时开发人员也可以扩展和创建自定义的方言。多方言支持:Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以原创 2021-01-31 23:34:47 · 169 阅读 · 1 评论 -
SpringBoot——整合SpringMVC、整合连接池、整合MyBatis、整合事务(四)
一、整合SpringMVC1.创建普通Maven工程后,以spring父工程为父工程,引入需要的启动器<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version>原创 2021-01-31 22:27:08 · 258 阅读 · 0 评论 -
SpringBoot——自动配置原理及属性注入(三)
一、回顾SpringBoot的优点1.内置Tomcat2.提供了自动配置3.是搭建Spring应用的脚手架综上可知,它是用来解决复杂的配置和混乱的依赖关系的那么,它的自动配置原理是什么呢?二、SpringBoot自动配置原理1.这些默认配置是怎么配置的,在哪里配置的呢?在spring-boot-autoconfigure,其中定义了大量自动配置类2.为何依赖引入就会触发配置呢?打开WebMvcAutoConfiguration,我们看到这个类上的4个注解:@Configurat原创 2021-01-31 17:28:06 · 488 阅读 · 3 评论 -
如何使用cmd关闭8080端口
问题当我们运行web程序时常常会遇到端口被占用的情况,我们可以修改访问的端口号或者用cmd杀死当前占用端口号的进程解决1.查看当前端口号的情况:netstat -o -n -a | findstr :80802.根据PID杀死当前占用端口号的进程:taskkill /F /PID 71003.成功了!...原创 2021-01-31 15:40:27 · 1620 阅读 · 0 评论 -
Java位运算(按位与、按位或、异或)
一、位运算位即二进制位或bit位所有运算到计算中底层中都会变成位运算,位运算可以提高程序的效率,而且我们在研究JDK或者某个框架的源码时,会发现很多地方都用到了位运算!例如我们在对数组进行排序时会大量用到交换两个数的值,如何提高排序效率呢1.用第三者2.用按位异或后者的效率要高于前者二、位运算符的种类1.&:按位与2.|:按位或3.^:按位异或4.~:按位取反5.<<:左移6.>>:右移7.>>>:无符号右移三、常用位运算解原创 2021-01-16 11:50:08 · 10817 阅读 · 0 评论 -
Linux——在生产环境服务器上部署项目(阿里云)
一、项目如何部署到服务器上1.购买阿里云服务器或者在本地装虚拟机,文末有白嫖阿里云服务器介绍,美滋滋,学生特权2下载xshell(编写指令)和Xftp 7(上传及下载文件)https://www.netsarang.com/zh/all-downloads/?code=6233.在服务器上安装 jdk,mysql,tomcat。4.maven项目生成war文件,放入Tomcat的webapps目录下二、安装JDK1.查看当前linux版本getconf LONG_BIT2.使用Xft原创 2021-01-08 16:03:23 · 1353 阅读 · 0 评论 -
ElasticSearch全文检索技术——简介及安装(一)
一、什么是ElasticSearch官网:https://www.elastic.co/cn/elasticsearch/ElaticSearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。ElasticSearch和原创 2021-01-06 10:43:59 · 323 阅读 · 0 评论 -
SSM——Vue树形菜单的实现
一、需求实现Vue多级菜单的渲染效果图:json数据格式,使用postman模拟如下:二、数据库设计tb_menus数据表内容三、后端核心代码1.Menus实体类package com.mall.domain;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import java.io.Serializable;import java.util.Date;import java.util.List原创 2020-12-29 13:01:25 · 825 阅读 · 1 评论 -
SSM——Spring MVC Vue token的生成和校检(三)
一、什么是Token在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,例如Facebook, Twitter, Google+, GitHub等。tokens 是多用户下处理认证的最佳方式。以下几点特性会让你在程序中使用基于Token的身份验证1.无状态、可扩展 2.支持移动设备 3.跨程序调用 4.安全二、Vue前后端分离项目中如何使用Token1、第一次登录的时候,前端调后端的登陆接口,发送用户名和密码2、后端收到请求,验证用户名和密码,验原创 2020-12-29 00:33:05 · 1920 阅读 · 2 评论 -
SpringBoot——Http请求及PostMan接口调试工具的使用(二)
一、Http的Get请求1.测试restful,get请求@RequestMapping(path = "/{city_id}/{user_id}",method = RequestMethod.GET) public Object findUser(@PathVariable("city_id")String cityId, @PathVariable("user_id")String userId){ params.cle原创 2020-12-28 23:19:01 · 1479 阅读 · 0 评论 -
git常用指令及上传代码至Gitee码云
Gitee——码云多人协作做项目必备,云端托管代码平台Git常用指令Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。...原创 2020-12-25 22:30:27 · 176 阅读 · 0 评论 -
SSM——不会有人还在手写实体类吧?数据库实体类自动生成工具
问题:数据库设计的表太多,手写实体类太麻烦我们设计数据库的时候,一不小心就设计了20张表,但是我们搭框架写实体类时该怎么办呢?自己手写???我们当然是利用强大的工具自动生成!!!解决方案:利用IDEA的工具自动生成实体类1.点击IDEA右侧的Database选项2.进行mysql配置3.右键进入配置文件夹对配置文件进行修改4.新建一个自己的配置文件代码如下:import com.intellij.database.model.DasTableimport com.intel原创 2020-12-25 18:04:20 · 846 阅读 · 1 评论 -
SSM——Spring MVC Vue axios跨域问题解决方案(二)
一、什么是跨域问题当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域如图:我们的vue前端项目的端口号为8081,ssm后端项目的端口号为8080,恭喜你出现跨域问题了!这时,我们可能会想到改vue脚手架的端口号这当然是不可行的,因为端口号会冲突,那我们应该怎么解决呢?前后端都可以解决跨域问题,后端简单所有教大家后端解决!!!二、后端拦截器解决1.创建跨域拦截器package com.crm.controller.interceptor;import原创 2020-12-25 13:33:26 · 1170 阅读 · 1 评论 -
利用HashMap统计字符串各个字符出现的次数
问题统计字符串中每个字符出现的次数思路利用HashMap效率很高,通过键值对的方式存字符及出现次数1.接收用户输入的字符串2.把字符串转为字符数组3.创建Map集合存储字符及次数的键值对4.遍历字符数组5.假如存在,获取当前次数,加一6.假如不存在,为一7.打印Map集合代码package test1224.demo1;import java.util.HashMap;import java.util.Map;import java.util.Scanner;/** *原创 2020-12-24 14:50:46 · 1469 阅读 · 0 评论 -
SpringBoot快速入门(一)
一、SpringBoot简介二、SpringBoot快速入门1.打开IDEA创建普通Maven工程2.填写项目名称及保存地址3.添加SpringBoot起步依赖SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot原创 2020-12-11 11:13:43 · 219 阅读 · 0 评论 -
SSM——Spring整合SpringMVC,MyBatis
一、环境搭建1.创建数据库 account账户表2.创建Maven web工程3.导入坐标并建立依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/原创 2020-11-22 19:01:34 · 890 阅读 · 0 评论 -
SSM——Spring MVC(一)快速入门
一、SpringMVC 概述1.概念SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring的 Spring MVC 框架或集成其他 MVC 开发框架,如 St原创 2020-11-21 00:27:31 · 226 阅读 · 0 评论 -
SSM——Spring(七)基于 XML 的声明式事务控制
一、环境搭建1.创建普通maven工程,配置pom.xml,导入依赖jar包坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org原创 2020-11-20 15:28:03 · 207 阅读 · 1 评论 -
SSM——Spring(六)基于注解的AOP配置
一、基于注解的 AOP 配置环境搭建1.创建普通maven工程,配置pom.xml,导入依赖jar包坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mave原创 2020-11-19 20:56:48 · 261 阅读 · 0 评论 -
SSM——Spring(五)基于XML方式的AOP
一、AOP 概述1.什么是 AOPAOP:全称是 Aspect Oriented Programming 即:面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。2.AOP 的作用及优势作用:在程序运行期间,不修改源码对已有方法进行增强。优势:减少重复代码提高开发效率维护方便3.AOP 的实现方式使用动态代理技术动态代理的特点字节码随用随创建,随用随加载。它与静态代理的区别也原创 2020-11-19 20:21:24 · 240 阅读 · 0 评论 -
SSM——Spring(四)基于纯注解方式的IoC实现账户的CRUD
一、需求和技术要求1.需求Spring纯注解实现账户的CRUD操作2.技术要求使用Spring的IoC实现对象的管理使用DBAssit作为持久层的解决方案使用c3p0数据源使用纯注解3.项目结构大纲二、环境搭建1.创建普通maven工程,配置pom.xml,导入依赖jar包坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"原创 2020-11-19 13:43:07 · 205 阅读 · 0 评论 -
SSM——Spring(三)基于XML方式的IoC实现账户的CRUD
一、需求和技术要求1.需求实现账户的CRUD操作2.技术要求使用Spring的IoC实现对象的管理使用DBAssit作为持久层的解决方案使用c3p0数据源二、环境搭建1.创建普通maven工程,配置pom.xml,导入依赖jar包坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww原创 2020-11-17 23:28:09 · 140 阅读 · 0 评论 -
SSM——Spring(二)基于XML方式的IoC快速入门
一、搭建Spring环境1.创建Maven工程二、添加配置文件及测试Spring环境1.添加 Spring 5.0.2 的坐标在 pom.xml 文件中添加Spring 5.0.2 及其他包的坐标,如下:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>sprin原创 2020-11-16 22:52:32 · 174 阅读 · 0 评论 -
SSM——Spring(一)框架概述
一、Spring简介Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架。以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术。还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。Spring官网:https:原创 2020-11-16 18:40:30 · 723 阅读 · 0 评论 -
SSM——MyBatis(八)注解开发
一、mybatis 的常用注解说明@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@ResultMap:实现引用@Results 定义的封装@One:实现一对一结果集封装@Many:实现一对多结果集封装@SelectProvider: 实现动态 SQL 映射@CacheNamespace:实现注解二级缓存的使用项目概况二、使用 Mybat原创 2020-11-15 01:13:40 · 299 阅读 · 0 评论 -
SSM——MyBatis(七)多表查询 一对一、一对多、多对多
一对一1.在 Account 类中加入 User 类的对象作为 Account 类的一个属性2.往账户持久层接口写查询方法3.定义 AccountDao.xml 文件<!-- 查询所有账户对应的用户--> <select id="findAll" resultMap="accountUserMap"> select u.*,a.id as aid,a.uid,a.money from user u,account a where u.id =原创 2020-11-14 16:27:28 · 675 阅读 · 0 评论 -
SSM——MyBatis(六)封装输出结果集
问题:实体类中的属性和数据库表的列名不一致?实体类数据库解决一:使用别名查询<!-- 查询所有--> <select id="findAll" resultType="user"> select id as userId,username as userName,address as userAddress,sex as userSex,birthday as userBirthday from user; </select&g原创 2020-11-14 00:14:25 · 258 阅读 · 0 评论 -
SSM——MyBatis(五)动态SQL语句
if标签//根据传入参数条件来查询用户//但参数中的user对象里面到底放了什么属性,还不确定List findByCondition(User user);<!-- 根据条件查询--> <select id="findUserByCondition" parameterType="user" resultMap="userMap"> select * from user where 1 = 1 <if test="原创 2020-11-13 23:56:07 · 256 阅读 · 0 评论 -
SSM——MyBatis(四)mybatis 别名配置 mapper配置
配置插入操作后,获取插入数据的id<!-- 保存用户--> <insert id="saveUser" parameterType="User">-- 配置插入操作后,获取插入数据的id <selectKey keyProperty="userId" keyColumn="id" resultType="int" order="AFTER"> select last_insert_id(); </se原创 2020-11-13 22:17:59 · 684 阅读 · 0 评论 -
SSM——MyBatis(三)CRUD
一、搭建mybatis环境1.创建 maven 工程2.导入坐标:pom.xml<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version>原创 2020-11-13 00:56:55 · 583 阅读 · 1 评论 -
Maven中的<packaging>标签
Maven项目的打包类型有三种:pom、jar、war,默认是jar类型<packaging>pom</packaging> 用在父级工程或聚合工程中。用来做jar包的版本控制。<packaging>jar</packaging> 将会打包成jar用作jar包使用,packaging默认类型。<packaging>war</packaging> 将会打包成war,发布在服务器上的工程。如网站或服原创 2020-11-12 12:49:28 · 1025 阅读 · 0 评论 -
SSM——MyBatis(二)快速入门
一、搭建MyBatis环境1.创建Maven工程添加缺少的包二、添加配置文件1.添加 Mybatis3.4.5 的坐标在 pom.xml 文件中添加 Mybatis3.4.5 及其他包的坐标,如下: <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version&g原创 2020-10-29 00:52:27 · 148 阅读 · 0 评论 -
SSM——MyBatis(一)框架概述
一、Mybatis简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。二、为什么要使用MyBatis框架?1、数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问原创 2020-10-28 23:18:20 · 529 阅读 · 2 评论 -
浅析Cookie和Session的区别
Cookie1.概念客户端会话技术,将数据保存到客户端2.使用步骤//1.创建Cookie对象,并绑定值Cookie cookie = new Cookie("lastTime",str_date);//2.设置cookie的存活时间(Cookie默认在浏览器关闭时销毁)cookie.setMaxAge(60 * 60 * 24 * 30);//3.发送Cookieresponse.addCookie(cookie);//4.获取所有CoolieCookie[] cookies = r原创 2020-10-09 00:48:41 · 212 阅读 · 0 评论 -
Servlet——运行在服务器端的小程序(基于Servlet的学生后台管理系统)
一、何为ServletServlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现Servlet接口,复写方法。public class MyServlet implements Servlet二、如何配置Servlet1.在web.xml中配置 <!--配置Servlet --> <servlet> <servlet-name>SelUserServlet</servlet原创 2020-10-06 23:43:54 · 827 阅读 · 3 评论 -
项目管理工具Maven快速入门
一、Maven是什么?有何优点?Maven是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar包,极大提升开发效率。Maven 的一个核心特性就是依赖管理。maven 工程中不直接将 jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需 jar包的坐标,到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从而找到这些 jar 包,再把这些 jar 包拿去运行,jar包具有可重用性。在cmd中运行maven工程效果图原创 2020-10-03 00:48:35 · 265 阅读 · 0 评论 -
反射——框架设计的灵魂(封装getter和setter方法)
一、什么是反射将类的各个组成部分封装为其他对象二、需求写一个"框架",封装setter和getter,通过配置文件,调用指定类的属性的getter、setter方法如何加载配置文件呢?三、代码pro.properties 配置文件className=test0926.demo1.PersonfieldName=nameparaType=Stringvalue=beizhenPerson 类package test0926.demo1;/** * 人 * @author :原创 2020-09-27 11:43:40 · 283 阅读 · 0 评论 -
快速了解JSON数据与XML数据优缺点
什么是JSON全称JavaScript Object Notation,即JavaScript对象表示法。Person p = new Person();p.setName("beizhen");p.setAge(20);var p = {"name":"beizhen","age":20};JSON是一种轻量级的数据交互格式,具有良好的可读性和快速编写的特性。什么是XML全称Extensible Markup Language,即可扩展标记语言<?xml version='1.原创 2020-09-18 16:32:24 · 210 阅读 · 0 评论 -
教你快速去掉VC运行环境下的Press any key to continue
问题当我们运行c文件时,默认都会显示Press any key to continue这句话那我们怎么让这句话不显示呢?解决方案答案很简单,只需在程序末尾加一行**getch();**代码即可注意加头文件conio.h#include<stdio.h>#include<conio.h>int main(){ printf("Hello,Bei-Zhen"); getch();}运行效果...原创 2020-09-16 12:59:20 · 6984 阅读 · 2 评论 -
Java入门——JVM、JDK、JRE是什么及配置环境变量
一、 Java虚拟机——JVMJVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。二、JDK原创 2020-09-15 19:37:35 · 631 阅读 · 0 评论