TypechoJoeTheme

bearjun博客,成长源于分享。

bearjun

当你成为了我的习惯,你就成为了我的全部!
2020-11-22

spring系列笔记

置顶
spring系列笔记
本笔记基于B站suns老师的课程所做笔记,视频地址:https://www.bilibili.com/video/BV185411477kspring系列笔记Spring工厂spring系列笔记 - 第一章 引言spring系列笔记 - 第二章 第一个 Spring 程序spring系列笔记 - 第三章 spring框架和日志框架整合spring系列笔记 - 第四章 注入spring系列笔记 - 第五章 set注入详解spring系列笔记 - 第六章 构造注⼊spring系列笔记 - 第七章 控制反转 和 依赖注入spring系列笔记 - 第⼋章 Spring工厂创建复杂对象(3种方式)spring系列笔记 - 第九章 控制 Spring 工厂创建对象的次数spring⼯⼚⾼级特性spring系列笔记 - 第⼗章 对象的生命周期spring系列笔记 - 第⼗⼀章 配置文件参数化spring系列笔记 - 第⼗⼆章 自定义类型转换器spring系列笔记 - 第⼗三章 后置处理BeanAOP编程spring系列笔记 - 第⼗四章 静态代理设计模式spring系列笔记 - 第⼗五章 Sp...
bearjun
JAVA,Spring
2020-11-22
37,683 阅读
0 评论
2020年11月22日
37,683 阅读
0 评论
2021-08-23

SpringMVC流程详解

SpringMVC流程详解
SpringMVC是什么Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。简单来讲,就是基于Servlet API之上的Web框架。是基于请求到响应的MVC架构模式。简化web开发。官方文档地址:https://docs.spring.io/spring-framework/docs/5.3.10-SNAPSHOT/reference/html/web.html#mvcSpringMVC基本的流程图想必大家对springmvc的流程图比较熟悉,那流程为什么是这样的呢?中间又发生了什么呢?DispatcherServletSpring MVC与许多其他Web框架一样,围绕前端控制器模式设计,其中中央Servlet DispatcherServlet提供用于请求处理的共享算法,而实际工作由可配置的委托组件执行。该模型非常灵活,支持多种工作流程。DispatcherServlet使用Spring配置来发现请求映射、视图解析、异常处理等所需的委托组件。通过上图,我们可...
bearjun
2021-08-23

JAVA

129 阅读
0 评论
2021年08月23日
129 阅读
0 评论
2021-08-18

Mybatis源码简单分析二

Mybatis源码简单分析二
前面说了Mybatis的核心对象,那Mybatis的核心对象如何与SqlSession建立联系呢?Mybatis的核心对象与SqlSession之间的联系首先我们知道,用Mybatis操作数据库获取结果有两只方式// 指定配置文件 String resource = "org/mybatis/example/mybatis-config.xml"; // 记在配置文件 InputStream inputStream = Resources.getResourceAsStream(resource); // 创建sqlSessionFactory工厂 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //方式一 try (SqlSession session = sqlSessionFactory.openSession()) { Blog blog = (Blog) session.selectOne("org.myb...
bearjun
2021-08-18

JAVA

132 阅读
0 评论
2021年08月18日
132 阅读
0 评论
2021-08-16

Mybatis源码简单分析一

Mybatis源码简单分析一
mybatis是什么MyBatis 是一流的持久化框架,支持自定义 SQL、存储过程和高级映射。 MyBatis 消除了几乎所有的 JDBC 代码和手动设置参数和检索结果。 MyBatis 可以使用简单的 XML 或注解进行配置,并将原语、Map 接口和 Java POJO(Plain Old Java Objects)映射到数据库记录。Mybatis是一个ORM类型的框架,解决的数据库访问和操作的问题,对现有的JDBC技术的封装。官网地址:https://mybatis.org/mybatis-3/zh/index.htmlmybatis和hibernate的对比看这个链接:https://blog.csdn.net/eff666/article/details/71332386mybatis开发回顾1、准备jar包<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x...
bearjun
2021-08-16

JAVA

150 阅读
0 评论
2021年08月16日
150 阅读
0 评论
2021-08-11

minio与springboot集成

minio与springboot集成
前面说了下minio的安装和配置,这次,我们来看看怎么和springboot进行集成使用。首先说一下版本:Springboot版本:2.2.5.RELEASEminio版本:8.x官方文档:https://docs.min.io/docs/java-client-quickstart-guide.html依赖添加依赖,官方给出的版本是8.3.0,但是用这个版本后会报错:然后我们将版本稍微降低下:<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.2.1</version> </dependency>创建minioClient对象由官方的文档可以看出,创建minioClient的方式有很多种。要的参数无非就是:url ip地址port 端口号access key 用户名secret key 密码bucketName 桶名称userSSL 是否使用ssl...
bearjun
2021-08-11

JAVA

195 阅读
0 评论
2021年08月11日
195 阅读
0 评论
2021-08-09

minio安装和基本使用

minio安装和基本使用
minio是什么MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。中文官网:http://www.minio.org.cn/中文文档地址:http://docs.minio.org.cn/docs/码云地址:https://gitee.com/mirrors/miniogithub地址:https://github.com/minio/miniominio与fastDFS比较\miniofastDFS应用场景更适合海量的大文件,当然MinIO的性也非常强劲适合小文件存储的场景,比如图片、JS文件等安装部署(运维)复杂度简单方便部署复杂文档文档全面,中英文支持友好暂无官方文档,全是网友自己总结活跃度开源项目,社区论坛的活跃度目前也非常的不错个人项目,没有官网,不...
bearjun
2021-08-09

JAVA

262 阅读
0 评论
2021年08月09日
262 阅读
0 评论
2021-07-29

springboot配置全局异常不生效的问题

springboot配置全局异常不生效的问题
背景最近忙着新的项目的整合工作,配置了一个全局异常,但是好像没有生效,一直报的错误还是springboot自带的异常。问题发现通过对全局异常的类实现InitializingBean初始化方法,但是springboot项目在启动的时候,控制台并没有打印任何初始化内容。@RestControllerAdvice @Slf4j public class GlobalExceptionHandler implements InitializingBean{ @ExceptionHandler(value = {RuntimeException.class}) @ResponseBody public CommonResult runtimeExceptionHandle(RuntimeException exception) { return CommonResult.failed(CommonCode.FAILED, exception.getMessage()); } @Override public vo...
bearjun
2021-07-29

JAVA

162 阅读
0 评论
2021年07月29日
162 阅读
0 评论
2021-07-25

spring系列笔记 - 第二十四章 Spring的高级注解

spring系列笔记 - 第二十四章 Spring的高级注解
配置BeanSpring在3.x提供的新的注解,用于替换XML配置文件。@Configuration public class AppConfig{ }配置形式发生了变化:由xml转成java代码,由@Configuration,这个类就等同于一个applicationContext.xml这个配置文件工厂的转变。由原来的ClassPathXmlApplicationContext转换成AnnotationConfigApplicationContext或者AnnotationConfigApplicationContext类。@Configuration的本质是@Component注解的衍生注解。可查看源码。@Bean注解@Bean注解在配置bean中进行使用,等同于xml配置中的<bean>标签。对象的创建首先来会回顾下创建对象:简单对象:直接能够通过new的方式创建的对象复杂对象:不能直接通过new的方式创建的,比如Connection,SqlSessionFactory。所有创建简单对象不就是直接注入:@Configuration public clas...
bearjun
2021-07-25

JAVA,Spring

194 阅读
0 评论
2021年07月25日
194 阅读
0 评论
2021-07-21

spring系列笔记 - 第二十三章 Spring的基础注解(Spring2.x)

spring系列笔记 - 第二十三章 Spring的基础注解(Spring2.x)
注解的基础概念指的是在类或者方法上加入特定的注解(@XXXX),完成特定功能的开发。为什么要讲解注解编程?注解开发非常方便,代码简洁开发速度大大提高Spring开发一个潮流Spring从2.x开始引入注解,Spring3.x开始完善注解,Springboot推广开来,普及注解。注解作用替换xml这种配置形式,简化配置@Component public class User{ } 可直接替代xml中的如下配置: <bean id="user" classs="com.bearjun.entity.User"/>从配置文件的方式,转换成注解的方式创建对象。替换接口,实现双方调用的契约性如图,假设Consumer的invoke需要调用Provider中m1方法?但是Consumer又不知道Provider的存在?那么就需要在调用者,和被调用者之间达成一个约定,这就是契约性,这个是可以由接口来保证的!!这个图出现了一个Contract接口,里面有method1接口方法。如果你需要调用,你只需要实现这个契约规则,只需要实现Contract...
bearjun
2021-07-21

JAVA,Spring

161 阅读
0 评论
2021年07月21日
161 阅读
0 评论
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. mdz2Z
    2021-10-06
  2. 1个
    2021-09-18
  3. java步行者
    2021-09-02
  4. relaxcai
    2021-02-28
  5. 1
    2021-01-05

    {!{data:image/webp;base64,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}!}

标签云