自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wonderfulwork

www.wonder4work.com

  • 博客(51)
  • 收藏
  • 关注

原创 Fluent-mongo:一个简化SpringBoot中mongoTemplate再封装

Fluent-mongofluent-mongo: 基于mongoHelper实现的mongodb工具类,简化了其不必要的部分,增加了自己的一些看法介绍spring-data-mongodb增强工具包,简化 CRUD 操作,提供类fluent-mybatis的数据库操作。传统关系型数据库及围绕它们构建的orm在项目开发中有很多难用的痛点。 mongodb这种文档性数据库的出现,完美的解决了sql数据库在项目开发中的诸多痛点,在mongodb4.0以后支持了事务,已经可以完美的用于工程项目。 sp

2021-10-12 08:41:33 553

原创 javac\java找不到或无法加载主类

最近学习Java时我也遇到了“找不到或无法加载主类“的问题,网上查找了N多办法都没有解决,自己尝试多次后终于解决了,下面我就说一下我的问题以及解决方法,希望对你们有所帮助:如果你还没有配置环境变量就上谷歌,如果你配置完环境变量后还出现此类问题请继续往下走。注意:我没有配置CLASSPATH变量,JDK版本10.0.1新建一个记事本写下java代码,如下图所示,并保存到桌面。...

2021-06-28 21:15:54 6708 3

原创 如何获取Cookie并使用Cookie侵入

打开你要获取cookie的网站,按下F12进入开发者模式,在控制台输入document.cookie复制你得到的内容(或通过每种方式获取Cookie,例如:当别人点击你的链接时在参数后加&docment.cookie)关闭浏览器,或换一个浏览器,打开同一个网站点击EditThisCookie,将相应的key和值加入进去,刷新网页,就可以侵入成功了(注意 Cookie...

2021-06-28 21:15:39 19322 4

原创 InfluxDB+Telegraf+Grafana搭建服务器性能监控平台

安装InfluxDB并运行docker run -d -p 8086:8086 --name=influxdb influxdb或者wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.1.x86_64.rpmyum localinstall influxdb-1.5.1.x86_64.rpmservice influxdb start安装Telegraf# 下载Telegrafwget https://

2021-03-08 12:59:06 257 1

原创 新一代构件工具Gradle

(一)你必须知道的事idea不同版本对gradle版本的支持程度不同,idea版本最好为2019以上 SpringBoot版本对gradle的版本也有要求(二)groovy基础知识了解(三)闭包(四)构建脚本解析说明:一个项目代表一个正在构建得组件(比如一个jar文件),当构建启动后,Gradle会基于build.gradle实例化一个org.gradle.api.Project类,并且能够通过project变量使其隐式可用(五)Gradle构建多模块项目(六)解

2020-10-18 15:00:47 1644 5

原创 WebService案例-实现天气查询

工程目录:(一)创建Springboot项目并引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency> <groupId>org.apache

2020-10-11 15:14:34 956 1

原创 Elasticsearch7.3.2学习笔记

(一)Elasticsearch 7.x版本注意事项(1)7.x版本中TransportClient连接方式(已废弃),只能使用restclient。Java推荐使用High-level-rest-client操作es(2)7.x版本中去除了type,es6时已经规定每一个index只能有一个type。在es7中_doc作为默认type(3)7.x版本中api请求方式也随着type的变化而变化(二)使用REST接口操作es(1)创建一个 ID 为 1 的新文档,并储存键值对,并为其建立索引,.

2020-08-21 14:59:14 518

原创 Vue学习笔记

(一)什么是MVVM是Model-View-ViewModel 的缩写,由 Model,View,ViewModel 三部分构成,Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向

2020-08-14 13:12:30 564

原创 (用户-角色-权限)系统管理后台,前后的分离实现

前端:https://github.com/haidilaohotpot/rbac-web后端API:https://github.com/haidilaohotpot/rbac-api(SpringBoot+MybatisPlus)接口地址:http://api.rbac.wonder4work.com/doc.html

2020-06-13 22:22:02 1334

翻译 什么是同步和异步,阻塞和非阻塞

同步与异步,阻塞与非阻塞很多同学可能会认为同步就是阻塞,异步就是非阻塞,非也。这四个槪念两两组合,会形成4个新的槪念,如下:1. 同步阻塞:客户揣发送请求给服务揣,此时服务端处理任务时间很久,则客户端则被服务端堵塞了,所以客户端会一直等待服务端的响应,此时客户端不能做其他任何事,服务端也不接受其他客户揣的请求。这种通信机制比较简单租暴,但是效率不高。2. 同步非阻塞:客户端发送...

2020-05-07 21:04:35 403

原创 什么是集群和分布式?

一、什么是集群1、多台计算机运行一个完全相同的系统(每个人的工作都一样)举例:有四个人他们都会造轮子,所以他们各自造自己的轮子,我需要轮子时只需要随机选一个就行。二、什么是分布式1、一个系统被拆分为若干个不同的子系统,每个子系统部署运行在自己的计算机节点中(将一个工作拆分为若干个子任务分配给不同的工人)...

2020-05-05 17:44:33 328

原创 WebMagic爬取码市、猪八戒、一品威客外包数据

WebMagic介绍1.1)概述WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。以上是WebMagic的官方简介,WebMagic是一个用于开发网络爬虫的Java框架,底层是HttpClient和Jsoup,相比HttpClient和Jsoup开发,WebMagic具有以下优点:1.1.1 简单的API,可...

2020-02-26 14:35:44 922 1

原创 Linux环境下使用docker部署SpringBoot+Mysql项目并使用nginx代理

第一步:使用Docker安装mysqldocker pull mysql第二步:启动mysqldocker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7第三步:进入容器创建数据库和相应的表数据第四步:使用docker inspect容器id查看mysql的ip第五步:更改数据库连接信息...

2020-01-19 14:45:23 790

原创 Docker环境下搭建Rabbitmq+Haproxy+Keepalived高可用负载均衡集群

集群架构图一)使用docker pull rabbitmq拉取最新rabbimq镜像创建docker网络rabbtimanet 用于haproxy和rabbimq通信 1 docker network create rabbtimanet ...

2019-11-13 14:50:10 1805

转载 String中的final用法和理解

final StringBuffer a = new StringBuffer("111"); final StringBuffer b = new StringBuffer("222"); a=b;//此句编译不通过 final StringBuffer a = new StringBuffer("111"); a.append("222");//编译...

2019-10-17 23:39:15 838

原创 使用Redis实现加锁和解锁

/** * 使用Redis进行加锁和解锁 */@Component@Slf4jpublic class RedisLock { @Autowired private StringRedisTemplate redisTemplate; /** * 加锁 * @param key * @param value 当前时间+超时时间...

2019-08-31 21:25:26 1767

原创 关于使用Java8中接口的默认方法简化service层的想法

火花:1)Java8后支持在接口中定义default方法2)每次都要写一个接口,然后还要写一个实现类3)懒人改变世界想法:使用Java8定义默认接口的方式,在接口中实现业务逻辑,使用反射和动态代理,new出接口的代理实现类并注入到Spring容器中,在接口中标注自己定义的@interface,在容器启动时解析processor实现可参考:mybatis底层缺点:...

2019-08-10 15:36:14 595

原创 校园商铺平台 1.0 版本

校园商铺平台版本 1.0涉及的主要技术:1)Java后端框架 Spring + SpringMVC + Mybatis 整合开发2)缓存框架:redis3)验证码引入:kaptcha实现验证码4)DES加密5)前端框架:SUIMobile6)Mysql主从分离(解耦)7)html + javascript 获取和渲染数据8)支持微信登录(微信与平台账号无缝对接)1.0...

2019-08-10 15:19:33 516 2

转载 SpringApplicationRunListener

SpringApplicationRunListener 接口的作用主要就是在Spring Boot 启动初始化的过程中可以通过SpringApplicationRunListener接口回调来让用户在启动的各个流程中可以加入自己的逻辑。Spring Boot启动过程的关键事件(按照触发顺序)包括:开始启动 Environment构建完成 ApplicationContext构建完成 ...

2019-07-28 22:18:46 682

原创 SpirngBoot自动装配原理之自己动手实现一个HelloWorld自动装配

Spring Boot 自动装配 在 Spring Boot 场景下,基于约定大于配置的原则,实现 Spring 组件自动装配的目的。底层装配技术 :Spring 模式注解装配 @ConfigurationSpring 模块装配 @EnableSpring 条件装配装配 @ConditionalSpring 工厂加载机制 SpringBoot自动装配的实现类: Spri...

2019-07-27 23:16:50 236

原创 Hadoop入门案例-实现WordCount

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;imp...

2019-04-10 19:46:33 2961 5

原创 MyBatis运行流程

Main函数首先来看看sqlSessionFactory对象的创建过程sqlSessionFactory的创建需要有Builder来build(),所以我们先看看build方法: public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties)...

2019-02-26 23:34:22 792

原创 SpringMVC—controller映射信息存储时机和过程

controller映射信息存储发生在Web容器初始化时,通过前面的博客我们知道,Web容器初始化时,会调用doCreateBean(),其中又会调用populateBean()和initializeBean(),而映射信息的注入发送在后者。每一bean的创建初始化都会经过,我们只需要找到我们的controller,找到后,我们来看看initializeBean()://最终我...

2019-02-21 15:25:28 553

原创 Spring原码解析—IOC容器初始化创建过程

确定程序入口:这里我们使用xml方式创建IOC容器,因此在第9行打上断点作为程序的入口。接着它会调用ClassPathXmlApplicationContext的构造方法,如图:而ClassPathXmlApplicationContext自身并没有这个方法,它的父类AbstractApplicationContext.class实现了这个方法,原码如下: publ...

2019-02-20 23:12:16 228

原创 Spring原码解析—ContextLoaderListener

 在开始讲ContextLoaderListener之前先看看SpringMVC官方文档提供的一张上下文关系图。从图中可以看出,DispatcherServlet创建的WebApplicationContext会有一个父容器Root WebApplicationContext,而MVC层的容器一般是用来装载Controllers ViewResolver以及Web层的一组件的,Root容器是Spr...

2019-02-20 14:38:14 225

原创 Spring原码解析—SpringMVC请求处理流程

我们都知道SpringMVC的核心就是DispatcherServlet,它负责接收请求和调度,在开始原码解析前先来看看SpringMVC请求的一个处理流程图:1)客户端发送请求,DispatcherServlet接收请求2)DispatcherServlet将请求交给DefaultAnnotationHandlerMapping找到对应的映射方法3)通过对应的DefaultAnn...

2019-02-19 00:37:23 500

原创 Spring原码解析之SpringMVC容器如何获取配置文件的bean

上一次,我们在 Spring原码解析之SpringMVC(DispatcherServlet)初始化流程中留下了一个方法还没有探究,如图:这一次我们将会探究一下 configureAndRefreshWebApplicationContext() 这个方法!FrameworkServlet.java protected void configureAndRefreshWe...

2019-02-18 13:38:47 358

原创 Spring原码解析之SpringMVC(DispatcherServlet)初始化流程

在开始之前我希望你能边操作边参考我的博客!!!Servlet3.0在说SpringMVC前先简单说一下Servlet3.0相关知识。Servlet3.0后项目里web.xml可以没有,原因是Servlet3.0后允许我们在META-INF里键一个services包,在这个包中加入名为 javax.servlet.ServletContainerInitializer 的文件,内容为自定...

2019-02-17 20:15:47 412

原创 基于SpringMVC+Spring+MyBatis实现高并发秒杀API

          基于SpringMVC+Spring+MyBatis实现高并发秒杀项目 项目介绍与说明使用的相关技术秒杀业务分析DAO层接口设计与实现秒杀业务接口设计与实现前端交互设计 MVC设计与实现高并发优化策略及实现GITHUB下载地址:https://github.com/xiezengcheng/seckill 项目介绍与说明 1)这...

2019-02-16 19:40:58 820 1

原创 秒杀项目-存储过程定义

 从这里开始-- 秒杀执行的存储过程DELIMITER $$ -- console ; 转换为 $$-- 定义存储过程-- 参数 in 输入参数 out 输出参数-- row_count() 返回上一条修改类型sql的影响行数-- 0 未修改数据 &gt;0 修改的行数 &lt;0 错误 或未执行修改sqlCREATE PROCEDURE seckill.execute_sec...

2019-02-16 19:37:18 305

原创 秒杀项目-service接口设计与实现

 从这里开始接口设计 ​​​​​​​package org.seckill.service;import org.seckill.dto.Exposer;import org.seckill.dto.SeckillExecution;import org.seckill.entity.Seckill;import org.seckill.exception.RepeatKill...

2019-02-16 19:37:11 374

原创 秒杀项目-DAO层接口设计

 从这里开始 package org.seckill.dao;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import org.seckill.entity.Seckill;import java.util.Date;import java.util...

2019-02-16 19:37:06 196 1

原创 秒杀项目-MyBatis映射文件

 从这里开始1)SeckillDAO.xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&

2019-02-16 19:37:01 188 1

原创 秒杀项目-controller层实现

 从这里开始SeckillController.java package org.seckill.web;import org.seckill.dto.Exposer;import org.seckill.dto.SeckillExecution;import org.seckill.dto.SeckillResult;import org.seckill.entity.Sec...

2019-02-16 19:36:55 251

原创 秒杀项目-RedisDAO实现

 从这里开始 package org.seckill.dao;import com.dyuproject.protostuff.LinkedBuffer;import com.dyuproject.protostuff.ProtobufIOUtil;import com.dyuproject.protostuff.ProtostuffIOUtil;import com.dyupro...

2019-02-16 19:36:48 738

原创 秒杀项目-数据库表设计

从这里开始-- 数据库初始化脚本-- 创建数据库CREATE DATABASE seckill;-- 使用数据库use seckill;-- 创建秒杀库存表CREATE TABLE seckill(seckill_id bigint NOT NULL AUTO_INCREMENT COMMENT '商品库存id',nam varchar(120) NOT NULL CO...

2019-02-16 19:36:29 3219

原创 Spring整合SpringMVC

         项目结构展示:            1)web.xml&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" &gt;&lt;web-app&gt; &l...

2019-02-16 19:16:25 154

原创 Spring整合MyBatis

配置文件项目结构图          1)spring-dao.xml文件配置 &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc...

2019-02-15 18:02:52 150

原创 使用Jsoup和Java实现一个简单的爬虫案例

Jsoup相应的jar包可以去官网下载,便可使用爬取的入口地址:(实习僧招聘网Java类)一:通过分析URL地址可知,每一页的URL只有p=?不同,第一页就是p=1,以此类推。因此,爬取总页数67页: public static void main(String[] args) throws Exception { for(int i=1;i&lt;6...

2019-01-22 16:28:21 510

原创 ThreadLocal浅析

需求:在web应用程序中,我们可能需要在Controller层创建和初始化若干变量,但是要在DAO层取出来使用,如何解决?(Spring是线程不安全的,应该避免增加属性级变量)方法一:通过方法传参,在controller层的某个方法中定义这个变量,并以函数参数的形式传递到DAO层缺点:传递一个参数,需要在不同层的方法中引入参数,与业务无关。如果需要多个变量就要增加多个参数方法二...

2019-01-17 19:17:06 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除