04 2019 档案
摘要:SpringBoot 着眼于JavaEE! 不仅仅局限于 Mybatis 、JDBC、 Spring Data JPA Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系数据库、 Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的
阅读全文
摘要:启动原理 运行流程 自动配置原理 一、启动原理 SpringApplication.run(主程序类)– new SpringApplication(主程序类)• 判断是否web应用• 加载并保存所有ApplicationContextInitializer(META-INF/spring.fact
阅读全文
摘要:Spring Boot: SpringBoot-start-web 里面依赖的环境中 如果是外部的Tomcat 容器,可以通过修改config进行配置 内嵌的呢? 如何定制和修改Servlet容器的相关配置; 1、修改和server有关的配置(ServerProperties类【也是Embedded
阅读全文
摘要:如果是浏览器访问,返回错误页面 注意浏览器发送请求的请求头: 注意区别其他客户端哦比如 postman 如果是其他客户端,返回一个Json数据 原理可以参照ErrorMvcAutoConfiguration;错误处理的自动配置; 给容器中添加了以下组件1、DefaultErrorAttributes
阅读全文
摘要:exists和in的使用方式: 1、exists是对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率; 2、in是把外表和内表做hash连接
阅读全文
摘要:JDK动态代理: 1. 目标类接口: public interface TargetInterface { public void method(); } 2. 目标类 public class Target implements TargetInterface { @Override public
阅读全文
摘要:简介 使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块; 比如web等等2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码; 参考这里: 比如要连接数据库的:有数据库的配置 查看 @EnableCo
阅读全文
摘要:日志框架 比如开发一个大型系统;1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件?2、框架来记录系统的一些运行时信息;日志框架 ;rizhi.jar;3、高大上的几个功能?异步模式?自动归档?xxxx? rizhi.jar.jar?4、将以前框架卸下来?换
阅读全文
摘要:springboot的基础使用 和 内部原理 高级使用整合 进行web开发 springboot 看下spring的所有项目:https://spring.io/projects 等等 就不一一介绍了 springboot 就是整合spring的一系列技术栈 进行简化 企业级开发 springboo
阅读全文
摘要:Springboot启动器: spring-boot-starter-web:spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里
阅读全文
摘要:自动配置原理 配置文件到底能写什么?怎么写?自动配置原理; 配置文件能配置的属性参照 :https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#common-application-properties
阅读全文
摘要:Spring mvc 是控制层框架 DispatherServlet 是一个servlet 请求交给dispatcherServlet 进行管理 重写了这个doService方法 流程: 1 spring mvc 任何请求先交给DispatcherServlet进行管理 2 执行Dispatcher
阅读全文
摘要:如何查看源码 Spring源码下载https://github.com/spring-projects/spring-framework/tags?after=v3.1.0.RC1 eclipse关联源码 自己百度吧 源代码结构组织 Build-spring-framework是整个Spring源代
阅读全文
摘要:基于Servlet3.0的异步处理,springmvc的异步处理 控制器返回callable, spring mvc异步处理,将callable提交到TaskExecutor 使用一个隔离线程进行执行 DispatcherServlet和所有的Filter退出web容器的线程,但是response保
阅读全文
摘要:在Servlet3.0之前,Servlet采用Thread-Per-Request的方式处理请求 即每次Http请求都有一个线程从头到尾负责处理 如果一个请求需要进行IO操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待IO操作完成,而IO操作是非常慢的,所以此时的线程不能及
阅读全文
摘要:在创建maven的web工程时候,如果报错缺少web.xml 则在pom添加如下配置 : web容器在启动的时候 会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer 加载这个文件指定的启动类 Spring的应用
阅读全文
摘要:servlet filter listener web.xml DispatcherServlet web.xml 后期 servlet3.0我们去除web.xml 通过注解方式 同时需要servlet7以上 创建web项目: 不需要生成web.xml了 此时是没有web.xml文件的 jsp: s
阅读全文
摘要:Aware接口: 例如: BeanNameAware接口是为了让自身Bean能够感知到,获取到自身在Spring容器中的id属性。 同理,其他的Aware接口也是为了能够感知到自身的一些属性。 比如实现了ApplicationContextAware接口的类,能够获取到ApplicationCont
阅读全文
摘要:Spring容器的refresh() 创建刷新 1 prepareRefresh() 刷新前的预处理 1) initProPertySources() 初始化一些属性设置; 子类定义个性化的属性设置方法 2) getEnvironment( ) .validateRequiredProperties
阅读全文
摘要:BeanFactoryPostProcessor BeanPostProcessor: bean后置处理器 bean创建对象初始化前后进行拦截工作的 BeanFactoryPostProcessor: beanFactory的后置处理器,在Beanfactory标准初始化之后调用;所有的Bean定义
阅读全文
摘要:spring操作数据库 jdbc 这个简化数据库操作 及其事务控制 maven依赖就导入了 jdbc 和 tx 如果用mybatis,则还需要导入orm模块,做事务控制时候,orm模块支持各种版本的mybatis 配置数据源和jdbcTemplate(Spring 提供简化数据库操作的工具) xml
阅读全文
摘要:底层动态代理 程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式 导入aop的相关模块 动态感知业务类运行的状态 通知: 前置 @Before 后置 @After 环绕 @Around 异常@AfterThrowing 返回 @AfterReturning 补充环绕通知: 动态代理
阅读全文
摘要:以数据库为例: 引入 c3p0数据源maven坐标 数据库驱动 这样就可以将数据源注册到容器中了 如何激活呢? 通过@Profile ! 指定组件在哪个环境的情况下 才能被注册到容器中,不指定任何环境下都能注册。 只有当激活的bean 才能被注册进来 加了环境表示@Profile 的bean 只有当
阅读全文
摘要:上面是与生命周期有关的内容,下面是属性赋值相关的: 测试: 看看容器有哪些Bean 除了容器自带的,还有就是我们配置的person,还没有赋值哦 xml: <baen id = "person" class = "com.toov5.Person"> <property name = "age" v
阅读全文
摘要:对于上面的知识图解,需要一点一点的研究。 首先核心容器: 控制反转 和 依赖注入 创建工程: maven仓库搜索 spring context : 引入后 <!-- https://mvnrepository.com/artifact/org.springframework/spring-conte
阅读全文
摘要:Java中应采用main函数运行。 1.Tomcat是Java开发的,启动的时候入口类为BootStrap main函数 2. 执行到我们的main函数中的init方法 2.1 使用Java的放射技术实例化我们的Catalina(实际上是个包装类,包装了所有的tomcat核心组件 (Connecto
阅读全文
摘要:自动配置原理配置文件到底能写什么?怎么写?自动配置原理; 参考:https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#common-application-properties配置文件能配置的属性参照1
阅读全文
摘要:作为一名专业编程人员,您碰到的大多数 Java servlet 都是为响应 Web 应用程序上下文中的 HTTP 请求而设计的。因此,javax.servlet 和 javax.servlet.http 包中特定于 HTTP 的类是您应该关心的。对于Servlet容器(Tomcat)与HttpSer
阅读全文
摘要:Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责: 补充下Servlet容器工作模式 按照工作模式的不同,Servlet容器可以分为以下3类: 在这种模式下,Servlet容器作为构成Web服务器的一部分而存在。当使用基于Java的Web服务器时
阅读全文
摘要:总结: Servlet:性能最好,处理Http请求的标准。 SpringMVC:开发效率高(好多共性的东西都封装好了,是对Servlet的封装,核心的DispatcherServlet最终继承自HttpServlet) 这两者的关系,就如同MyBatis和JDBC,一个性能好,一个开发效率高,是对另
阅读全文
摘要:基本数据类型是放在栈中还是放在堆中,这取决于基本类型声明的位置。 一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有
阅读全文