01 2022 档案
摘要:SpringBoot18:集成SpringSecurity 安全简介 在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要
阅读全文
摘要:SpringBoot17:Dubbo和Zookeeper集成 什么是分布式系统? 在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”; 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式
阅读全文
摘要:SpringBoot16:富文本编辑器 简介 思考:我们平时在博客园,或者CSDN等平台进行写作的时候,有同学思考过他们的编辑器是怎么实现的吗? 在博客园后台的选项设置中,可以看到一个文本编辑器的选项: 其实这个就是富文本编辑器,市面上有许多非常成熟的富文本编辑器,比如: Editor.md——功能
阅读全文
摘要:SpringBoot15:异步、定时、邮件任务 前言 在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的
阅读全文
摘要:SpringBoot14:集成Swagger终极版 学习目标: 了解Swagger的概念及作用 掌握在项目中集成Swagger自动生成API文档 Swagger简介 前后端分离 前端 -> 前端控制层、视图层 后端 -> 后端控制层、服务层、数据访问层 前后端通过API进行交互 前后端相对独立且松耦
阅读全文
摘要:SpringBoot13:页面国际化 有的时候,我们的网站会去涉及中英文甚至多语言的切换,这时候我们就需要学习国际化了! 准备工作 先在IDEA中统一设置properties的编码问题! 编写国际化配置文件,抽取页面需要显示的国际化页面消息。我们可以去登录页面查看一下,哪些内容我们需要编写国际化的配
阅读全文
摘要:SpringBoot12:MVC自动配置原理 官网阅读 在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。 只有把这些都搞清楚了,我们在之后使用才会更加得心应手。途径一:源码分析,途径二:官方文档! 地址 :https
阅读全文
摘要:SpringBoot11:Thymeleaf模板引擎 模板引擎 前端交给我们的页面,是html页面。如果是我们以前开发,我们需要把他们转成jsp页面,jsp好处就是当我们查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等。 jsp支持非常强大的功能,包括能写Java代码,
阅读全文
摘要:SpringBoot10:Web开发静态资源处理 简介 好的,同学们,那么接下来呢,我们开始学习SpringBoot与Web开发,从这一章往后,就属于我们实战部分的内容了; 其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配。 使用SpringBoot的步骤
阅读全文
摘要:SpringBoot09:整合MyBatis 官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/ Maven仓库地址:https://mvnrepository.com/artifact/org
阅读全文
摘要:SpringBoot08:整合Druid Druid简介 Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。 Druid 可以很好的监
阅读全文
摘要:SpringBoot07:整合JDBC 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,
阅读全文
摘要:SpringBoot06:自定义starter 我们分析完毕了源码以及自动装配的过程,我们可以尝试自定义一个启动器来玩玩! 说明 启动器模块是一个 空 jar 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库; 命名归约: 官方命名: 前缀:spring-boot-starter-x
阅读全文
摘要:SpringBoot05:自动配置原理 配置文件到底能写什么?怎么写? SpringBoot官方文档中有大量的配置,我们无法全部记住 分析自动配置原理 我们以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理; //表示这是一个配置类,和以前编写的
阅读全文
摘要:SpringBoot04:JSR303数据校验及多环境切换 先看看如何使用 Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式; @Component //注册bean@Config
阅读全文
摘要:SpringBoot03:yaml配置注入 配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value 配置文件的作用 :修改Spr
阅读全文
摘要:SpringBoot02:运行原理初探 我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起; pom.xml 父依赖 其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件! <parent> <groupId>org.spring
阅读全文
摘要:SpringBoot01:Hello,World! SpringBoot简介 回顾什么是Spring Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。 Spring是如何简
阅读全文
摘要:Java全栈学习路线 一、Java基础 二、JavaWeb 三、SSM框架 四、Linux运维 五、微服务和分布式 六、大数据开发 七、持续学习 写在最后 成为一个合格的工程师需要 1~3 年时间,最好的学习方法就是找经典的书籍系统地学习,而不要遇到一个问题到网上搜搜然后就解决了事。例如 Java
阅读全文
摘要:SpringMVC08:拦截器+文件上传下载 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别:拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部
阅读全文
摘要:SpringMVC07:Ajax研究 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 Ajax 不是一种新的编程语言,而是一种用于创建更好更快以
阅读全文
摘要:SpringMVC06:Json交互处理 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语
阅读全文
摘要:SpringMVC05:整合SSM框架 环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识; 数据库环境 创建一个存放书籍数据的数据库表 CREATE DA
阅读全文
摘要:SpringMVC04:数据处理及跳转 结果跳转方式 ModelAndView 设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 . 页面 : {视图解析器前缀} + viewName +{视图解析器后缀} <!-- 视图解析器 --><bean class=
阅读全文
摘要:SpringMVC03:RestFul和控制器 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。 控制器负责解析用户的请求并将其转换为一个模型。 在Spring MVC中一个控制器类可以包含多个方法 在Spring MVC中,对于Controll
阅读全文
摘要:SpringMVC02:第一个MVC程序 现在我们来看看如何快速使用SpringMVC编写我们的程序吧! 配置版 1、新建一个Moudle , springmvc-02-hello , 添加web的支持! 2、确定导入了SpringMVC 的依赖! 3、配置web.xml , 注册Dispatche
阅读全文
摘要:SpringMVC01:什么是SpringMVC 1.1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式
阅读全文
摘要:MySQL07:权限及如何设计数据库 用户管理 使用SQLyog 创建用户,并授予权限演示 基本命令 /* 用户和权限管理 */ 用户信息表:mysql.user-- 刷新权限FLUSH PRIVILEGES-- 增加用户 CREATE USER kuangshen IDENTIFIED BY '1
阅读全文
摘要:MySQL06:事务和索引 事务 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 MySQL事务处理只支持InnoDB和BDB数据表类型 事务的ACID原则 百度 ACID 原子性(Atomic) 整个事务中的所有操作,要么全部
阅读全文
摘要:MySQL05:MySQL函数 常用函数 数据函数 SELECT ABS(-8); /*绝对值*/ SELECT CEILING(9.4); /*向上取整*/ SELECT FLOOR(9.4); /*向下取整*/ SELECT RAND(); /*随机数,返回一个0-1之间的随机数*/ SELEC
阅读全文
摘要:MySQL04:使用DQL查询数据 DQL语言 DQL( Data Query Language 数据查询语言 ) 查询数据库数据 , 如SELECT语句 简单的单表查询或多表的复杂查询和嵌套查询 是数据库语言中最核心,最重要的语句 使用频率最高的语句 SELECT语法 SELECT [ALL |
阅读全文
摘要:MySQL03:DML语言 外键 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。 在实际操作中,将一个表的值放入第二个表来表示关联,所使
阅读全文
摘要:MySQL02:数据库操作 结构化查询语句分类 数据库操作 命令行操作数据库 创建数据库 : create database [if not exists] 数据库名; 删除数据库 : drop database [if exists] 数据库名; 查看数据库 : show databases; 使
阅读全文
摘要:MySQL01:初识MySQL 如果你只会写代码的是码农;要学好数据库,才能基本能混口饭吃;在此基础上如果再学好操作系统和计算机网络,就能当一个不错的程序员。如果能再把离散数学、数字电路、体系结构、数据结构/算法、编译原理学通透,再加上丰富的实践经验与领域特定知识,就能算是一个优秀的工程师了。 初识
阅读全文
摘要:Spring09:声明式事务 回顾事务 事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎! 事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。 事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。 事务四个属性ACID 原子性(at
阅读全文
摘要:Spring08:整合MyBatis 步骤 1、导入相关jar包 junit <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency> mybat
阅读全文
摘要:Spring07:AOP就这么简单 什么是AOP AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种
阅读全文
摘要:Spring06:静态/动态代理模式 代理模式 为什么要学习代理模式,因为AOP的底层机制就是动态代理! 代理模式: 静态代理 动态代理 学习aop之前 , 我们要先了解一下代理模式! 静态代理 静态代理角色分析 抽象角色 : 一般使用接口或者抽象类来实现 真实角色 : 被代理的角色 代理角色 :
阅读全文
摘要:Spring05:使用注解开发 说明 在spring4之后,想要使用注解形式,必须得要引入aop的包 在配置文件当中,还得要引入一个context约束 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframe
阅读全文
摘要:Spring04:自动装配 自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean。 Spring中bean有三种装配机制,分别是: 在xml中显式配置; 在java中显式配置; 隐式的bean发现机制和自动装配。 这里我们
阅读全文
摘要:Spring03:依赖注入(DI) 概念 依赖注入(Dependency Injection,DI)。 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 构造器注入 我们在之前的案例已经讲过了 Set 注入 (
阅读全文
摘要:Spring02:快速上手Spring HelloSpring 导入Jar包 注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 . <dependency> <groupId>org.springframework</gr
阅读全文
摘要:Spring01:概述及IOC理论推导 简介 Spring : 春天 >给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。 很
阅读全文
摘要:MyBatis07:缓存 简介 1、什么是缓存 [ Cache ]? 存在内存中的临时数据。 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。 2、为什么使用缓存? 减少和数据库的交互次数,
阅读全文
摘要:MyBatis06:动态SQL 介绍 什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘
阅读全文
摘要:MyBatis05:一对多和多对一处理 多对一的处理 多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计 CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30)
阅读全文
摘要:MyBatis04:使用注解开发 面向接口编程 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面
阅读全文
摘要:MyBatis03:ResultMap及分页 查询为null问题 要解决的问题:属性名和字段名不一致 环境:新建一个项目,将之前的项目拷贝过来 1、查看之前的数据库的字段名 2、Java中的实体类设计 public class User { private int id; //id private
阅读全文
摘要:MyBatis02:CRUD操作及配置解析 namespace 将上面案例中的UserMapper接口改名为 UserDao; 将UserMapper.xml中的namespace改为为UserDao的路径 . 再次测试 结论: 配置文件中namespace中的名称为对应Mapper接口或者Dao接
阅读全文
摘要:MyBatis简介 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是MyBatis MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和
阅读全文
摘要:maven的下载安装配置教程(详细图文) 想要实现一个优秀的项目,光靠自己一个码农是很难的,我们需要引入别人已经集成好的类包来帮助我们优化项目,这个时候就需要使用maven了。 一、maven是什么 Maven是基于项目对象模型(POM project object model),可以通过一小段描述
阅读全文