- 博客(11)
- 收藏
- 关注
原创 springboot-启动流程及注解扫描加载
启动流程注解的扫描和注解配置类加载prepareContext方法的load(context, sources.toArray(new Object[0]))方法,将bean加载到应用程序上下文中判断当前启动类是不是一个组件类(即Component注解类)表示合并的注解有没有一个继承关系,同时继承关系中有没有一个Component的注解BeanDefinitionReader注册BeanDefinition信息,spring流程返回到refreshContext方法.
2021-04-19 21:31:25
740
2
原创 实战项目-SwaggerUI使用
https://www.cnblogs.com/jockming/p/12233433.html1:认识SwaggerSwagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。作用:1. 接口的文档在线自动生成。2. 功能测试。Swagger是一组开源项目,其中主要要项目如下:Swagger-tools:提
2021-04-14 17:14:31
813
原创 mybatis-plus-使用mybatis-plus
一、简介官网:http://mp.baomidou.com/参考教程:http://mp.baomidou.com/guide/MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。二、特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅
2021-04-10 17:31:46
417
原创 mybatis-plus-代码生成器模板
// 1、创建代码生成器 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); System.out.println(projectPath); gc.setOutputDir(pr..
2021-04-10 15:10:42
849
原创 ssm-SpringMVC功能实现分析
目录一. web.xml二.ContextLoaderListener2.1 ServletContextListener的使用2.2 分析ContextLoaderListener三.DispatcherServlet web.xml启动流程ssm整合一. web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmln
2021-04-06 18:44:59
349
原创 ssm-web.xml和配置ContextLoaderListener
web.xmlweb.xml加载过程(步骤)首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: <listener></listener>和<context-param></context-param>。紧接着.
2021-04-04 11:12:26
769
原创 ssm- mybatis整合springmvc和spring
目录一 .简介1.1 环境说明:1.2 什么是MyBatis1.3 持久化1.4 持久层1.5 为什么需要Mybatis一 .简介1.1 环境说明:jdk 8 +MySQL 5.7.19maven-3.6.1IDEA学习前需要掌握:JDBCMySQLJava 基础MavenJunit1.2 什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML
2021-04-03 13:58:59
110
原创 Spring源码-循环依赖问题1
1.首先在缓存中获取A对象,发现没有,则实例化A,并将A未初始化的实例添加到三级缓存,开始初始化A,发现其中有B的引用,然后去缓存中获取B实例,没有,则开始实例化B,并将B未初始化的实例添加到三级缓存,开始初始化B实例,结果又发现B中有A的引用,则去缓存中获取A实例,此时三级缓存中有半成品A实例。2.找到半成品A后,获取A的半成品,并将A的半成品放入二级缓存,然后删除三级缓存中的A。3.然后,B实例可以在二级缓存拿到半成品A继续初始化,B初始化完成,将B的完成品加入一级缓存,并删除关于B的二级和三。...
2021-03-31 08:07:54
114
原创 mysql高级-解决远程连接权限问题
use mysql #进入用户库#查看用户权限select * from user\G; #因为数据太多,所以改成竖行显示\G这里的priv是privilege:特权#查询指定的数据select host,user,authentication_string from user;看到都是localhost本地连接创建远程用户set global validate_password_policy=0;create user 用户名 identified by '密码大于8
2021-03-16 11:18:13
114
原创 mysql高级-linux上安装mysql并启动进入
检查当前系统是否安装过mysql1.CenOS6rpm -qa|grep mysql#卸载rpm -e --nodeps mysql-libs2 CenOS7rpm -qa| grep mariadb#卸载rpm -e --nodeps mariadb-libs检查当前mysql依赖环境rpm -qa |grep libaiorpm -qa| grep net-tools安装mysql(rpm安装)详细安装mysql创建一个目录cd /usr/l.
2021-03-16 10:58:49
194
原创 HashMap原理
HashMap源码HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。我们都知道数组中添加数据,要根据数组下标进行添加,那我们怎么获取下标呢?通过Entry中的key获取要添加的数组下标index1.如果直接使用key进行hash算法,得出的结果很难作为下标System.out.println("1111111111111111".hashCode()); //-1225
2021-03-11 12:37:11
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人