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