自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 【Spring注解】生命周期

Spring注解 生命周期初始化和销毁调用时机自定义初始化和销毁的方式@Bean指定初始化和销毁方法initializingBean和DisposableBean接口@PostConstruct 和@PreDestroyBeanPostProcessor 后置处理器BeanPostProcessor原理Spring底层对BeanPostProcessor的使用bean的生命周期:bean创建–>初始化–>销毁的过程在Spring中由容器管理bean的生命周期,我们可以自定义初始化和销毁方法

2020-12-17 17:22:45 893

原创 【Spring 注解】组件注册

Spring注解 组件注册组件注册@Bean @Configuration 给容器中注册组件@Scope 设置组件作用域@ComponentScan 自动扫描组件@Filter@Import 给容器中快速导一个组件FactoryBean@Conditional 按照条件注册Bean组件注册给容器中注册组件的方式:包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)适用于我们自己写的类@Bean适用于导入第三方包里的组件@Impo

2020-12-15 20:27:55 122 1

原创 【SpringBoot】使用外部Servlet容器

使用外部Servlet容器创建项目步骤原理SpringServletContainerInitializerSpringBootServletInitializer创建项目步骤创建war项目使用外部Servlet容器要把项目打成war包由于我们是用的自动创建springboot,所以自动在pom.xml中把嵌入式的tomcat指定为了provided必须写一个SpringBootServletInitializer的子类ServletInitializer,并调用configure方法,这

2020-12-15 11:18:09 325 1

原创 【Spring Boot】配置嵌入式Servlet容器及启动原理

SpringBoot配置嵌入式Servlet容器定制和修改Servlet容器相关配置全局配置文件编写WebServerFactoryCustomizer注册Servlet三大组件注册Servlet注册Filter注册ListenerSpringBoot注册DispatcherServlet切换嵌入式Servlet容器SpringBoot默认使用Tomcat作为嵌入式的Servlet容器定制和修改Servlet容器相关配置可以通过全局配置文件或者自己编写WebServerFactoryCustomiz

2020-12-13 22:54:06 390

原创 【SpringBoot】错误处理机制

SpringBoot错误处理机制SpringBoot默认的错误处理机制原理:ErrorMvcAutoConfiguration(错误处理的自动配置)处理流程ErrorPageCustomizerBasicErrorController响应页面errorHtmlDefaultErrorViewResolver响应json数据error定制错误响应定制错误页面定制错误的json数据SpringBoot默认的错误处理机制当发生错误时,针对不同的客户端,SpringBoot有不同的处理。如果是浏览器,就会返回默

2020-12-12 23:36:17 366

原创 【SpringBoot】国际化

SpringBoot 国际化SpringBoot进行国际化properties中文乱码SpringBoot 国际化的自动配置AcceptHeaderLocaleResolver自定义LocaleResolver原理SpringBoot进行国际化编写国际化配置文件,抽取页面需要显示的国际化消息在全局配置文件中写我们配置的位置原理就是SpringBoot自动配置好了管理国际化资源文件的组件MessageSourceAutoConfiguration会去全局配置文件中找spring.mes

2020-12-11 23:33:21 169

原创 【SpringBoot】SpringMVC自动配置原理及扩展Spring MVC

SpringMVC自动配置Spring MVC Auto-configuration扩展Spring MVC原理所有WebMvcConfigurer 一起起作用不能加@EnableWebMvc 原因SpringBoot关于SpringMVC自动配置的文档:Spring MVC Auto-configurationSpring MVC Auto-configuration扩展Spring MVC2.4.0官方文档关于扩展Spring MVC的说明:If you want to keep those

2020-12-11 22:57:11 554

原创 【SpringBoot】Web开发 访问静态资源

SpringBoot Web开发访问静态资源映射规则webjars自己的静态资源欢迎页访问静态资源映射规则WebMvcAuotConfiguration类下的addResourceHandlers 方法:就是添加资源映射ResourceProperties 设置和静态资源有关的参数,如缓存时间等webjarswebjars:以jar包的方式引入静态资源;引入webjars依赖我们可从webjars网站找到我们想要的资源的依赖的xml怎么写.当我们要访问的静态资源是用jar包的方式引

2020-12-10 19:48:10 120 2

原创 【SpringBoot】日志

日志日志框架SpringBoot 日志框架统一日志记录SpringBoot日志关系日志使用修改日志默认配置全局配置文件指定配置日志框架日志框架包含 日志门面(日志的抽象层)和日志实现日志门面 (日志的抽象层)日志实现JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-loggingLog4j JUL(java.util.logging)Log4j2 **LogbackLog4j和L

2020-12-10 17:02:44 65

原创 【SpringBoot】自动配置原理

自动配置原理开启自动配置功能@EnableAutoConfiguration将自动配置类加入容器@Import({AutoConfigurationImportSelector.class})每一个自动配置类进行自动配置功能以HttpEncodingAutoConfiguration为例条件判断给容器添加组件属性类ServerProperties通过原理得到SpringBoot的使用方式xxxxAutoConfigurartion:自动配置类;xxxxProperties:封装配置文件中相关属性;@Cond

2020-12-10 11:17:14 242

原创 【SpringBoot】配置

SpringBoot配置配置文件配置文件加载位置外部配置加载顺序配置文件占位符配置文件注入@ConfigurationProperties@ConfigurationProperties 和@Value 比较@PropertySource:加载指定的配置文件@ImportResource 导入Spring的配置文件Profile 不同配置切换激活方式配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;•application.properties•application.yml

2020-12-10 09:08:13 118

原创 【MyBatis】逆向工程 MBG

MaBatis 逆序工程MBG文档MBG使用第一步:编写MBG的配置文件第二步:运行代码生成器生成代码MBG就是根据表自动生成对应的映射文件,接口以及bean类。文档官方文档地址:http://www.mybatis.org/generator/官方工程地址:https://github.com/mybatis/generator/releasesMBG使用1)编写MBG的配置文件2)运行代码生成器生成代码第一步:编写MBG的配置文件jdbcConnection配置数据库连接信息jav

2020-12-09 15:09:55 69

原创 【设计模式】代理模式

代理模式静态代理优缺点动态代理newProxyInstance方法Cglib代理实现步骤代理模式的变体代理模式:为一个对象提供一个替身,以控制对这个对象的访问。 即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、 创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、 动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态

2020-12-04 17:04:03 107

原创 【设计模式】组合模式/部分整体模式

组合模式案例组合模式/部分整体模式原理图注意事项源码:HashMap案例编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。 如图:组合模式/部分整体模式组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,**将对象组合成树状结构以表示“整体-部分”**的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合

2020-12-04 13:03:50 327

原创 【设计模式】装饰者模式

装饰者模式案例装饰者模式JDK源码案例用装饰者模式解决的类图:装饰者模式装饰者模式: **动态的将新功能附加到对象上。**在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)装饰者模式原理装饰者和被装饰者都继承一个抽象类, 装饰者中聚合这个抽象类(实际传入被装饰者)Component 主体 抽象类(装饰者和被装饰者都继承)ConcreteComponent 具体的主体 被装饰者Decorator: 装饰者 装饰者中聚合 Component 属性JDK

2020-12-04 10:30:36 52

原创 【设计模式】适配器模式

适配器模式适配器模式类适配器类适配器模式注意事项和细节对象适配器接口适配器源码:SpringMvc中的HandlerAdapter适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式src是我们原有的接口或类,但是我们想用dst接口的方法我们没有,这时候就需要一个适配器来关联src和dst.我们想要的是5V电压给手机充电,但现在只

2020-12-04 10:18:44 82

原创 【设计模式】建造者模式

建造者模式传统模式建造者模式建造者模式的四个角色解决房子思路建造者模式和工厂模式对比JDK源码:StringBuilder盖房项目需求需要建房子:这一过程为打桩、 砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.传统模式传统方式的缺点:过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合性增强了。建造者模式将产品和产品建造过程解耦 =&

2020-12-02 12:13:37 84

原创 【设计模式】原型模式

原型模式原型模式浅拷贝深拷贝重写clone方法实现深拷贝通过对象序列化实现深拷贝(推荐)原型模式的注意事项和细节JDK源码 Spring创建bean对于下面的问题:现在有一只羊tom, 姓名为: tom, 年龄为: 1, 颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。原型模式原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型, 创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节工作

2020-12-02 11:56:31 75

原创 【设计模式】工厂设计模式

工厂设计模式三种工厂模式简单工厂模式(静态工厂模式)基本介绍设计方案工厂方法模式基本介绍设计方案抽象工厂模式基本介绍设计思路JDK源码 Calendar类通过具体的需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、 CheesePizz 等)披萨的制作有 prepare, bake, cut, box完成披萨店订购功能。首先我们如果用传统的方式完成,我们会用一个OrderPizza.java 类来根据用户输入直接new 对应的pizza ,

2020-12-01 23:00:36 139

原创 【设计模式】单例设计模式

单例设计模式8种单例模式饿汉式(可用,但可能造成内存浪费)静态代码块懒汉式线程不安全 的 懒汉式 (不能使用)线程安全的懒汉式 同步方法(不推荐使用,效率低)懒汉式 同步代码块(不能使用,未实现线程安全)双重检查(推荐使用)静态内部类(推荐使用)枚举(推荐使用)单例模式JDK源码分析单例模式注意事项和细节说明单例模式的使用场景8种单例模式单例模式:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。单

2020-12-01 20:45:40 124

原创 【设计模式】UML类图

UML类图依赖泛化关系(generalization)实现关系(Implementation)关联关系(Association)单向一对一关系双向一对一关系聚合关系(Aggregation)组合关系(Composition)UML——Unified modeling language UML(统一建模语言)UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖UML类图是UML图的一种,用于描述系统中的类

2020-12-01 16:24:57 134

原创 【设计模式】七大设计原则

七大设计原则单一职责原则接口隔离原则(Interface Segregation Principle)例子(违背接口隔离原则):改进:遵循接口隔离原则依赖倒转原则Dependence Inversion Principle依赖倒转原则的注意事项和细节依赖关系传递的三种方式接口传递构造方法传递setter方式传递里氏替换原则基本介绍解决方案开闭原则(Open Closed Principle)迪米特法则(Demeter Principle)/最少知道原则直接朋友注意事项合成复用原则(Composite Reu

2020-12-01 13:38:52 79

空空如也

空空如也

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

TA关注的人

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