
Spring
mu6y
这个作者很懒,什么都没留下…
展开
-
Spring 监听器的简单用法
SpringApplicationListener用法与原理 SpringApplicationListener的简介与基本用法 SpringApplicationListener是Spring为我们提供的事件监听器,它主要是为我们提供事件监听机制,我们可以创建一个监听器,并向该监听器创建相应的事件,当该事件发生时,我们可以我们的监听器就会得到相应的通知,并且触发相应的逻辑。是典型的观察者模式 基本用法 @FunctionalInterface public interface ApplicationLis原创 2020-09-04 00:03:36 · 362 阅读 · 0 评论 -
SpringIOC容器创建过程
Spring整体流程 1.SpringIOC容器初始化流程(ApplicationContext的初始化) 如上图所示,Spring注解ApplicationContext通过配置类创建IOC容器。 public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this(); register(componentClasses); refresh(); } @Override pub原创 2020-09-04 00:01:12 · 311 阅读 · 0 评论 -
SpringMVC常见面试题
SpringMVC常见面试题 1.什么是SpringMVC?简单介绍下你对SpringMVC的理解 SpringMVC是一个基于Java实现的MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2.SpringMVC核心组件 前端控制器DispatcherServlet 作用:接收请求、相应结果,相当于转发器,有了DIspatcherServlet就减少了其他组件之转载 2020-08-04 16:31:18 · 251 阅读 · 0 评论 -
Spring AOP原理(3)--目标方法的调用
Spring AOP原理 目标方法的执行 容器中保存了组件的代理对象(cglib增强后的对象),这个对象里面保存了详细信息(比如增强器,目标对象,等); CglibAopProxy.intercept();拦截目标方法的执行 根据ProxyFactory对象获得将要执行的目标方法拦截器链; List interceptorList保存所有拦截器 ,一个默认的ExposeInvocationInterceptor和4个增强器; 遍历所有的增强器,将其转为interceptor。 将增强器转为我们要用的Me原创 2020-07-17 13:56:24 · 361 阅读 · 0 评论 -
Spring AOP原理(2)-AnnotationAwareAspectJAutoProxyCreator的注册与使用
Spring AOP原理(2) Spring 容器注册AnnotationAwareAspectJAutoProxyCreator 流程 注册配置类,调用refresh()刷新容器。 调用registerBeanPostProcessors(beanFactory);注册bean的后置处理器方便拦截bean的创建。 先获取ioc容器中已经定义了的需要创建对象的所有BeanPostProcessor。 优先注册实现了PriorityOrdered接口的BeanPostProcessor。 再给容器中原创 2020-07-17 13:55:03 · 170 阅读 · 0 评论 -
Spring AOP原理(1)--@EnableAspectJAutoProxy
Spring AOP原理 @EnableAspectJAutoProxy注解 使用Spring 的AOP功能需要再配置类上添加@EnableAspectJAutoProxy注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(AspectJAutoProxyRegistrar.class) public @interface EnableAspectJAutoProxy { /** *原创 2020-07-17 13:50:54 · 225 阅读 · 0 评论 -
Spring Bean 生命周期
Spring Bean的声明周期 Bean生命周期概述 Spring Bean的声明周期共有4个,分别为 实例化 Instantiation 属性赋值 Populate 初始化 Initialization 销毁 Destruction 主要逻辑都在doCreate()方法中,逻辑很清晰,就是顺序调用以下三个方法,这三个方法与三个生命周期意义对应,分别为 createBeanInstance()->实例化 populateBean()->属性赋值 initializeBean()->转载 2020-07-16 12:42:02 · 127 阅读 · 0 评论 -
SpringMVC 拦截器
SpringMVC拦截器 SpringMVC提供了拦截器机制,允许运行目标方法之前进行一些拦截工作,或者目标方法之后进行一些其他处理; Filter:javaWeb 拦截器:SpringMVC HandlerInterceptor public interface HandlerInterceptor { //目标方法运行之前调用,返回为true 放晴,返回为false,不放行 default boolean preHandle(HttpServletRequest request, HttpSe原创 2020-05-28 23:44:54 · 281 阅读 · 1 评论 -
SpringMVC ResponseBody
SpringMVC快速返回ajax功能 返回数据是json就可以; 页面时$.ajax(); 原生javaweb 导入gson 返回数据用gson转成json 返回 SpringMVC 导包 写配置 添加jackson依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId原创 2020-05-28 21:56:45 · 334 阅读 · 0 评论 -
SpringMVC 视图解析器流程分析
Spring视图解析器(ViewResolve) 视图解析器会将Controller中String的返回值(视图名)进行拼串。 @Controller public class HelloController{ @RequestMapping("/hello") public String hello(){ return "../../hello"; } } //forward:转发到一个页面 // /hello.jsp:转发到当前项目下的hello @Reques原创 2020-05-26 21:49:37 · 293 阅读 · 0 评论 -
SpringMVC DispatcherServlet 分析
SpringMVC-DispatcherServlet源码总结 SpringMVC工作流程 DispatcherServlet 用户的请求最先到达DispatcherServlet,他是springmvc的核心,也是中央处理器。 DispatcherServlet的核心就是doDispatcher这个方法 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception原创 2020-05-23 23:40:32 · 214 阅读 · 0 评论 -
SpringMVC HelloWorld常用知识
SpringMVC HelloWorld HelloWorld运行流程 客户端点击链接会发送http://localhost:8080/springmvc/hello请求 来到tomcat服务器: SpringMVC的前端控制器收到所有请求 来看请求地址和@RequestMapping标注的那个匹配,来找到使用哪个类的哪个方法处理 前端控制器找到了目标处理器类和目标方法,直接利用反射执行目标方法 方法执行完成后会有一个返回值,若无其他注解,SpringMVC会认为这个返回值就是要去的页面地址 拿到方法返回原创 2020-05-19 23:48:58 · 141 阅读 · 0 评论 -
Spring 事务学习
Spring 事务 Spring事务中的使用方法常见的有两种,一种是编程式事务,一种是声明式事务。 编程式事务目前使用的较少,一般是jdbc进行数据库操作而没有引入其他框架时,就需要通过手动编写事务进行处理。 声明式事务 @Transactional,在实际开发中,对于一组数据库操作特别是增删改操作,为了保证原子性,通常需要用事务来控制,要么全部成功,要么全部失败。尽可能将Mysql执行语句放到方法体后面靠。因为MySQL事务的commit语句是在第一次执行MySQL相关语句开始,一直到方法的结束。 @Tr原创 2020-05-14 16:32:14 · 132 阅读 · 0 评论 -
SpringBoot学习 日志系统
SpringBoot日志系统 市面上的日志框架 JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j… 日志门面 (日志的抽象层) 日志实现 (日志的抽象层) JCL(Jakarta Commons Logging SLF4j(Simple Logging Facade for Java) jboss-loggi JUL(java.uti...原创 2020-05-03 13:04:27 · 197 阅读 · 0 评论 -
SpringBoot学习 配置文件
配置文件 SpringBoot使用一个全局的配置文件,配置文件名application是固定的; application.properties application.yml application.yaml 配置文件的目录: SpringBoot启动会扫描以下位置的application.properties或者application.yml文件作为Springboot的默认配置文件 fil...原创 2020-05-02 22:49:17 · 230 阅读 · 0 评论 -
SpringBoot HelloWorld
SpringBoot启动配置 第一个HelloWorld 导入spring boot相关依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <...原创 2020-04-30 17:34:19 · 155 阅读 · 0 评论 -
Spring注解-Day3--自动注入
Day 3 @Value @Value注解用于设置需要注入容器的Bean的值,使用方法有以下三种: 基本数值 可以写SpEL,#{} 可以通过${}取出配置文件中的值(在运行环境变量里面的值) 要读取配置文件,需要在配置类上方添加@PropertySource(value = {“classpath:/person.properties”},encoding = “gbk”)注解读取配置文件 ...原创 2020-03-10 12:51:17 · 241 阅读 · 0 评论 -
Spring注解-Day2--初步认识Bean的生命周期
初步认识Bean的生命周期 Bean实例的生命周期中的初始化和销毁阶段 Bean大概有三个过程 创建–初始化–销毁,由IOC容器管理Bean的生命周期,我们可以自定义初始化和销毁的方法,对于单实例对象和多实例对象,初始化的时机都是在对象创建完成,并赋值之后,调用初始化方法。 对于单实例对象,在IOC容器调用close方法之后,bean进入销毁过程;而对于多实例对象,IOC容器不对Bean的销毁做管...原创 2020-03-04 00:02:55 · 138 阅读 · 0 评论 -
Spring常用注解-学习Spring注解驱动开发--Day 1
Spring 注解驱动开发 Day 1 该课程主要讲述使用Spring注解来进行开发 注解整理 @Configuration 该注解标注一个类为Spring配置类,表示该类代替原始的xml配置文件 @ComponentScan 该注解用于配置Spring将哪些类装进IOC容器中,在注解中,参数value填写所扫描的包名,includeFilters和excludeFilters用于配置装载...原创 2020-03-02 23:26:48 · 124 阅读 · 0 评论