请教我kao代码

Knowledge gives us ways to survive the destruction until the rebirth arrives

0%

项目源码自取↓:

异步、邮件与定时任务:

https://github.com/codersliu/springtest

springboot整合redis:

https://github.com/codersliu/springboot10-redisTest

异步任务

在开发环境中,对于不能实时返回用户数据的处理过程,应当在处理前通知用户,并在计算完成后返回计算结果。即通过异步任务,在数据开始处理时通知用户当前信息正在处理,处理完毕后返回结果。

通过一个example理解什么是异步任务

新建AsynService用于暂停程序执行,模拟在异步任务中,数据处理过程中的计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.sliu.springtest.service;

import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

@Service
public class AsynService {

public void hello(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("processing");
}
}
阅读全文 »

背景

上一part中掌握了如何使用常用数据源,jdbc、druid和mybatis

在part1中为了防止用户在未登陆用户下访问到员工管理页面,用过滤器的方式实现了对该类请求的拦截。在本part中整合常用安全框架,以简单配置代替编码实现拦截器等其它安全功能。

整合框架及所实现功能移步左侧一级标题

项目地址(源码自取↓):

整合SpringSecurity:https://github.com/codersliu/springboot06-springsecurity

整合Shiro:https://github.com/codersliu/springboot08-shiro

整合SpringSecurity

新建项目,导入以下依赖↓

阅读全文 »

Swagger简介

当前开发中前后端分离通过API实现,前端页面封装数据在json文件中模拟pojo中的实体类信息,后端与前端交互时通过接口获取的信息替换json中的模拟数据,实现前后端的分离。该开发模式中前后端分离程度高,甚至可以将前后端部署在不同服务器上。

存在的问题是前后端集成联调的过程中信息不同步会导致开发受阻(例如对于前端需求,后端开发了对应的接口,而此时需求变更,前端需要添加一个信息字段。后端就需要对数据库、接口等进行编码)。因而如何让需求变更在前后端开发人员之前保持实时同步,对于避免此类开发危机至关重要。

早期的解决方案中,前端使用postman进行后端返回的接口测试。而后端负责提供接口,而关键就在于后端需要保证接口信息变动的实时同步,提前制定Schema。

为了解决后端实时同步接口变动信息,Swagger应运而生。

Swagger特性:

  • RestFul风格的API文档在线自动生成工具=>Api文档与Api定义同步更新
  • 直接运行,在线测试Api接口
  • 支持多种语言

Swagger官网

使用Swagger需要导入springbox jar包,包括:

  • swagger2
  • ui
阅读全文 »

项目背景

part1中利用HashMap模拟数据库实现了对数据的增删改查操作,对SpringBoot的特性和使用有了一定了解。

part2整合各类主流的DataSource和数据库组件。

涉及到的数据库源和相关技术点移步左侧一级标题。

环境:jdk v.1.8.0

项目地址:

整合jdbc&druid

https://github.com/codersliu/springboot04-jdbcLearning

整合mybatis

https://github.com/codersliu/springboot05-mybatis/tree/master

阅读全文 »

项目背景

记录狂神大佬的SpringBoot练手项目,建议有空跟着视频kao一遍,笔记记录大体项目编写流程,并记录一些自身练习过程中碰到的疑难点、对相关技术原理进行拓展。

项目涉及到的模块功能、技术点请移步 左侧 一级标题

文章(一)基于map结构模拟数据库进行数据的增删改查

文章(二)接入真实数据库

项目环境:

​ Jdk:v.1.8

完整项目地址(未接入数据库):https://github.com/codersliu/springboot03-manasys

静态资源自取↑

tips:方法变量命名啥的有自己的命名习惯,所以会稍有不同,但大体上是保持一致的,请放心食用~

阅读全文 »

题目

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

思路

分析

与斐波那契数列一样,只是初始状态改为

f(0)= f(1)= 1;

状态转移方程仍然为:

f(n) = f(n - 1) + f (n - 2);

题目分析,假设f[i]表示在第i个台阶上可能的方法数。逆向思维。如果我从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。所以f[n] = f[n-1] + f[n-2]. 那么初始条件了,f[0] = f[1] = 1。 所以就变成了:f[n] = f[n-1] + f[n-2], 初始值f[0]=1, f[1]=1,目标求f[n]

实现

阅读全文 »

简介

git、svn和cvs的主要区别在于git是分布式版本控制系统,而svn和cvs则是集中式版本控制系统。集中式版本控制系统所有文件系统存放在中央服务器上,工作模式更像是一个C/S模式,本地用户通过安装客户端来与服务器进行版本的获取与更新操作。问题是当服务器处于脱机状态时,所有用户都要停止工作。

为了解决该问题,git则抛弃了这种机制,用户将所有文件包括版本信息下载到本地,提交和修改可以在本地执行,在修改确定后再与远程服务器保持同步。

简单理解git是什么?

git是一种开源分布式 版本控制 工具

安装和配置

Linux下安装git

Ubuntu10.10及以上版本、Debain squeeze及以上版本使用以下命令:

1
2
$ sudo aptitude install git
$ sudo aptitude install git-doc git-svn git-email gitk //安装单独的软件依赖包
阅读全文 »

Golang的学习方向

当前使用的领域主要是在:

  1. 区块链研发工程师
  2. Go服务器端 / 游戏软件工程师
  3. Go分布式 / 云计算软件工程师

特性就是 既能够达到动态编译语言所具有的速度和性能,又能够达到动态编译语言在开发过程中的高效率

在学习一门语言时,需要思考的细节包括:

  1. 怎么使用更规范
  2. 使用陷阱
  3. 需要使用时,应该注意些什么
阅读全文 »

简介

是什么

分布的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse of control反转控制)AOP(Aspect oriented programming面向切片编程)为内核。

优势

(1) 方便解耦,简化开发

(2)AOP编程的支持

(3)声明式事务的支持

(4)方便程序的测试

(5)方便集成各种优秀框架

(6)降低Java EE中API的使用难度

阅读全文 »

Spring JdbcTemplate基本使用

概念

​ 它是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和bernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。

开发步骤

(1)导入Spring-jdbc和spring-tx(transaction事务)坐标

(2)创建数据库表和实体

(3)创建JdbcTemplate对象

(4)执行数据库操作

Spring产生JdbcTemplate对象

​ 可以将JdbcTemplate的创建权交给Spring,将DataSource的创建权也交给Spring,在Spring

阅读全文 »