Java学习路线
文章平均质量分 87
Java学习路线
飞天小牛肉
公众号 @飞天小牛肉
展开
-
使用 PageHelper 前先学会手写一个分页查询吧
分页是日常开发中很常见的需求,本文带大家基于 MyBatis 和 Spring Boot 一步一步写一个分页查询,了解分页查询的基本逻辑。当然,大家熟悉之后,日常开发中还是推荐利用插件/框架来提高编码效率(比如非常优秀的 MyBatis 分页插件 PageHelper)原创 2021-01-05 17:26:00 · 498 阅读 · 0 评论 -
Netty 实战:实现基本聊天功能
???? 实例:Netty 实现聊天功能???? 本文属于 CS-Wiki 仓库中教程的一篇文章,有些知识点在之前的文章中已经详细解释过,如果不了解的话可前来学习:⭐ CS-Wiki(Gitee 推荐项目)仓库地址本项目基于:Java 8IDEA 2020Netty 4.1.421. 新建项目并导入依赖新建一个 Maven 项目并导入 Netty 4 依赖:<dependencies> <dependency> <group原创 2020-12-17 11:11:46 · 1499 阅读 · 2 评论 -
Shiro 登录认证过程源码详解
???? 本文收录于 Gitee 仓库,Gitee 推荐项目,欢迎前来 star 呀~ https://gitee.com/veal98/CS-Wiki???? Shiro 登录认证过程源码详解1. Shiro 获取前端传值先给出登录的代码:@RestControllerpublic class LoginController { @CrossOrigin @PostMapping(value = "api/login") public String logi原创 2020-09-30 21:29:56 · 512 阅读 · 0 评论 -
LinkedList 详细源码分析
???? 本文收录于Gitee仓库,欢迎前来 star 呀~ https://gitee.com/veal98/CS-WikiLinkedList 源码分析LinkedList 是一个实现了 List 接口和 Deque 接口的双向链表。 LinkedList 底层的链表结构使它支持高效的插入和删除操作,另外它实现了 Deque 接口,使得 LinkedList 类也具有队列的特性:public class LinkedList<E> extends AbstractSeq原创 2020-09-12 21:49:26 · 97 阅读 · 0 评论 -
ArrayList 详细源码分析
???? 本文收录于Gitee仓库,欢迎前来 star 呀~ https://gitee.com/veal98/CS-WikiArrayList 源码分析ArrayList的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。ArrayList继承了 AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。ArrayList实现了 RandomAccess接口, RandomAccess是一个标志接口,表明实现原创 2020-09-12 21:47:37 · 131 阅读 · 0 评论 -
SpringBoot + Shiro 一篇文章快速入门
**Apache Shiro™**是一个强大且易用的Java安全框架,能够用于身份验证、授权、加密和会话管理。Shiro 拥有易于理解的API,您可以快速、轻松地获得任何应用程序——从最小的移动应用程序到最大的网络和企业应用程序。原创 2020-08-25 19:08:07 · 553 阅读 · 0 评论 -
SpringBoot + Spring Security 一篇文章快速入门
Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入 `spring-boot-starter-security` 模块,进行少量的配置,即可实现强大的安全管理。原创 2020-08-16 21:55:25 · 1269 阅读 · 0 评论 -
【SpringBoot】 — 2 - 配置文件
SpringBoot 使用一个全局的配置文件,配置文件名是固定的:- application`.properties` 语法结构 :<u>key = value</u>- application`.yml` 语法结构 :<u>key:空格 value</u>> ???? 标记语言:>> - 以前的配置文件;大多都使用的是 **xxxx.xml** 文件;>> - YAML:**以数据为中心**,比 json、xml 等更适合做配置文件;原创 2020-08-02 18:23:03 · 249 阅读 · 0 评论 -
【SpringBoot】— 1 - Spring Boot 入门
开发一个web应用,从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序,是要经历特别多的步骤;后来就用了框架Struts,再后来是SpringMVC,到了现在的SpringBoot,过一两年又会有其他web框架出现。言归正传,什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can "just run",能迅速的开发web应用,几行代码开发一个http接原创 2020-08-02 18:21:28 · 193 阅读 · 0 评论 -
SpringBoot 实战案例 —— 员工信息 CRUD
???? 本文收录于Github仓库 https://github.com/Veal98/CS-Wiki???? 在线阅读地址:https://veal98.gitee.io/cs-wiki/???? 实战案例:员工信息 CRUD本案例采用 SpringBoot + Thymeleaf,没有使用 Mybatis,全程模拟数据。只是一个小 Demo,很多功能都没有完善,只实现了最基本的 CRUD 和登录,登录的密码写死了是123456,用户名随意。由于实际开发中一般不使用 Th原创 2020-07-07 15:33:23 · 1072 阅读 · 3 评论 -
SSM整合高级实例:学生管理系统(包含增删改查和分页功能)
SSM整合高级实例:学生管理系统(包含增删改查和分页功能)原创 2020-05-27 22:49:33 · 3442 阅读 · 5 评论 -
【Java基础系列】—— Object+StringBuilder+包装类+Calendar+System+Date
主要内容- Object类- Date类- DateFormat类- Calendar类- System类- StringBuilder类- 包装类转载 2020-03-31 16:13:14 · 128 阅读 · 0 评论 -
【Mybatis学习笔记】—— 【五】缓存机制
MyBatis 包含一个非常强大的查询缓存特性,它可以非 常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存。 - 默认情况下,只有一级缓存(SqlSession级别的缓存, 也称为本地缓存)开启。 - 二级缓存需要手动开启和配置,他是基于namespace级 别的缓存。(也称为全局缓存) - 为了提高扩展性。MyBatis定义了缓存接口Cache。我们 可以通过实现Cache接口来自定义二级缓存原创 2020-03-31 11:36:20 · 178 阅读 · 1 评论 -
【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。原创 2020-03-30 17:52:32 · 233 阅读 · 0 评论 -
【Mybatis学习笔记】—— 【四】动态SQL
动态 SQL是MyBatis强大特性之一。极大的简化我们拼装 SQL的操作。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处 理器相似。MyBatis 采用功能强大的基于 `OGNL` 的表达式来简化操作。 - if 判断- choose (when, otherwise) 分支选择- trim (where, set) 字符串截取- foreach 遍历集合原创 2020-03-30 14:14:01 · 257 阅读 · 0 评论 -
【Mybatis学习笔记】—— 【三】sql映射文件
映射文件指导着MyBatis如何进行数据库增删改查, 有着非常重要的意义;- cache –命名空间的二级缓存配置- cache-ref – 其他命名空间缓存配置的引用- resultMap – 自定义结果集映射- parameterMap – 已废弃!老式风格的参数映射 - sql –抽取可重用语句块。 - insert – 映射插入语句 - update – 映射更新语句 - delete – 映射删除语句- select – 映射查询语句原创 2020-03-29 14:31:02 · 267 阅读 · 0 评论 -
【Mybatis学习笔记】—— 【二】全局配置文件
文章目录1. properties属性2. settings 设置3. typeAliases 别名处理器4. typeHandlers 类型处理器日期类型的处理自定义类型处理器5. plugins 插件6. environments 环境transactionManagerdataSource7. databaseIdProvider 环境8. mapper 映射MyBatis 的配置文件...原创 2020-03-27 13:13:13 · 170 阅读 · 0 评论 -
【Mybatis学习笔记】—— 【一】搭建第一个Mybatis项目
文章目录一、以前的方式1. 创建maven工程并导包2. 创建数据库表和对应的 JavaBean3. 创建Mybatis全局配置文件4. 创建sql映射文件5. 测试二、接口式编程(推荐)1. 创建一个Dao层接口2. 修改Mapper文件3. 测试三、SqlSession一、以前的方式1. 创建maven工程并导包可以使用maven在线下载依赖,这里因为我已经下载好了jar包,直接导入...原创 2020-03-27 11:36:34 · 249 阅读 · 0 评论 -
【SpringMVC学习笔记】—— 【五】异常处理+拦截器
Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。 用户可以自己定义一些拦截器来实现特定的功能。 谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链就是将拦截器按一定的顺 序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。原创 2020-03-26 11:32:59 · 255 阅读 · 0 评论 -
【SpringMVC学习笔记】—— 【四】文件上传
一、传统方式的文件上传1. 导入依赖2. Jsp界面3. Controller控制器4. 运行结果二、 SpringMVC传统方式的文件上传1. 配置文件解析器2. Jsp界面3. Controller控制器4. 运行结果三、SpringMVC跨服务器方式的文件上传1. 新建一个Tomcat服务器存储图片2. 导入依赖3. Jsp界面4. Controller控制器5. 运行结果原创 2020-03-25 12:31:19 · 325 阅读 · 1 评论 -
【SpringMVC学习笔记】—— 【三】响应数据和结果视图
1. Controller返回值分类返回字符串返回值是void返回值是ModelAndView对象2. SpringMVC框架提供的转发和重定向3. @ResponseBody 响应 json 数据资源准备使用@RequestBody获取请求体数据使用@RequestBody注解把json的字符串转换成JavaBean的对象使用@ResponseBody注解把JavaBean对象转换成json字符串,直接响应原创 2020-03-24 11:45:10 · 280 阅读 · 0 评论 -
【SpringMVC学习笔记】—— 【二】请求参数的绑定 + 常用注解
一、基本数据绑定二、请求参数绑定实体类型三、配置解决中文乱码的过滤器四、请求参数绑定集合类型五、自定义类型转换器六、使用 Servlet 原生的 API 对象作为方法参数七、常用注解1. RequestParam2. RequestBody3. PathVaribaleREST 风格 URL4. RequestHeader5. CookieValue6. ModelAttribute基于 POJO 属性的基本使用ModelAttribute 修饰方法带返回值ModelAt..原创 2020-03-22 15:37:39 · 365 阅读 · 0 评论 -
【SpringMVC学习笔记】—— 【一】入门案例
> - SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。> - Spring 框架提供了构建 Web 应用程序的全功 能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在原创 2020-03-20 15:01:03 · 499 阅读 · 2 评论 -
【Spring学习笔记】—— (五)Spring中的事务控制
> - JavaEE 体系进行分层开发,事务处理位于业务层,Spring 提供了分层设计业务层的事务处理解决方 案。 > - spring 框架为我们提供了一组事务控制的接口。这组接口是在 `spring-tx-5.0.2.RELEASE.jar` 中。> - spring 的事务控制都是基于 AOP 的,它既可以使用编程的方式实现,也可以使用配置的方式实现。学习的重点是使用配置的方式实现原创 2020-03-19 11:45:38 · 363 阅读 · 0 评论 -
Java —— 多线程(并发)—— 基础知识
**进程是资源分配的基本单位。**`进程控制块 (Process Control Block, PCB) ` 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。**系统运行一个程序即是一个进程从创建,运行到消亡的过程。****在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。**原创 2020-03-18 21:34:31 · 256 阅读 · 0 评论 -
【Spring学习笔记】—— (四)数据库操作模板 JdbcTemplate
系列博客:【Spring学习笔记】—— (一)Spring框架概述 + 基于XML的IoC配置【Spring学习笔记】—— (二)基于注解的IoC【Spring学习笔记】—— (三)AOP【Spring学习笔记】—— (四)数据库操作模板 JdbcTemplate文章目录1. JdbcTemplate 概述2. 基本使用3. IoC 配置 Spring 内置数据源4. Jdbc...原创 2020-03-18 18:08:28 · 388 阅读 · 0 评论 -
【Spring学习笔记】—— (三)AOP
什么是 AOP`Aspect Oriented Programming: 面向切面编程`。通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。降低耦合,提高程序的可重用性,同时提高开发效率。简单的说:就是把程序中重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。原创 2020-03-17 12:19:27 · 263 阅读 · 0 评论 -
【Spring学习笔记】—— (二)基于注解的IoC
学习目标:Spring 基于注解的IoC以及IoC的案例spring中ioc的常用注解案例使用xml方式和注解方式实现单表的CRUD操作持久层技术选择:dbutils改造基于注解的ioc案例,使用纯注解的方式实现spring的一些新注解使用spring和Junit整合原创 2020-03-16 15:50:24 · 292 阅读 · 0 评论 -
Java ——反射
文章目录1. 什么是反射?1. 什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成...原创 2020-03-07 16:44:14 · 232 阅读 · 0 评论 -
【Spring学习笔记】—— (一)Spring框架概述 + 基于XML的IoC配置
1. Spring是什么我们常说的 Spring 实际上 是指 `SpringFramework` ,而 SpringFramework 只是 Spring 家族的的一个分支而已。Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,**以 IOC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核**,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层原创 2020-03-04 21:08:56 · 547 阅读 · 0 评论 -
【Jsp+Servlet】实现图书增删改查和分页显示
1. 数据库建表book表原创 2020-02-29 15:11:20 · 2864 阅读 · 7 评论 -
【JSP+Servlet】实现登录和注册
JSP+SerVlet,对Servlet和Dao层进行优化,抽取出共同代码只实现了简单的登录和注册,用户名查重、记住用户名和密码、验证码、表单校验并没有实现???? GitHub源码地址文章目录前端界面代码结构1. 建立登录注册相关模型(Bean层)建立用户表user建立对应的User类2. 建立Utils层获取数据库连接3. 建立Dao层操作数据库数据建立BaseDao, ...原创 2020-02-28 16:13:42 · 9690 阅读 · 3 评论 -
【Spring Boot + Vue 前后端分离 - 图书管理Demo】——【三】增删改操作
???? 【Spring Boot + Vue 前后端分离 - 图书管理Demo】——【一】环境准备???? 【Spring Boot + Vue 前后端分离 - 图书管理Demo】——【二】查操作???? GitHub源码地址文章目录修改添加删除修改流程:前端主页面点击修改按钮后端根据id查询此图书信息 findById前端发送ajax请求获取数据并跳转到修改页面 BookUpda...原创 2020-02-20 17:01:13 · 1352 阅读 · 1 评论 -
【Spring Boot + Vue 前后端分离 - 图书管理Demo】——【二】查操作
文章目录一、 主界面样式二、 menu 与 router的绑定,实现页面跳转1. 在views中新建`BookManager.vue (查询图书页面)、BookUpdate.vue(图书信息修改页面)、AddBook.vue(添加图书页面)`2. 配置路由(router/`index.js` )3. 修改`App.vue`, 实现menu 与 router的绑定(页面跳转)三、前后端信息传递,显...原创 2020-02-18 19:58:32 · 1479 阅读 · 2 评论 -
【Spring Boot + Vue 前后端分离 - 图书管理Demo】——【一】环境准备
SpringBoot + Vue + Element UI 简单实现图书的增删改查操作前后端分离就是将一个单体应用拆分成两个独立的应用,前后端通过JSON格式进行数据交换;前端HTML -----> Ajax --------> Restful 后端数据接口文章目录Demo最终效果:项目结构:一、环境准备二、新建Vue工程三、新建Spring Boot工程Demo...原创 2020-02-17 21:16:32 · 1696 阅读 · 1 评论 -
Java ——基本概念
文章目录1. JDK 和 JRE 有什么区别?2. `==` 和 `equals` 的区别是什么?3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4. final 在 java 中有什么作用?5. java 中的 Math.round(-1.5) 等于多少?6. String 属于基础的数据类型吗?7. java 中操作字符串都有哪些类?它们之间有什么区别...原创 2020-02-18 12:08:12 · 133 阅读 · 0 评论 -
【Spring Boot】—— 环境搭建及第一个Spring Boot项目
文章目录一、Spring Boot 简介二、微服务三、环境准备四、第一个Spring Boot程序HelloWorld五、HelloWorld 源码探究1. pom文件2. 主程序类,主入口类一、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;二、微服务微服务:架构风格(服务微化)一...原创 2020-02-14 21:10:58 · 217 阅读 · 0 评论 -
Java—— 容器(集合框架)
Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框)架位于java.util包中, 所以当使用集合框架的时候需要进行导包。文章目录一、Java集合框架体系二、常用接口及方法1. Collection接口及常用方法:2. Set接口(集合)3. List接口4. Queue接口(队列)5. Map接口三、常用算法1. 排序算法 sort()2. 洗牌算法 shuffl...原创 2020-02-13 14:41:07 · 317 阅读 · 0 评论