当前位置: 首页 > news >正文

无锡网站建设机构网站计算机速成培训班

无锡网站建设机构,网站计算机速成培训班,制作网站演示,汽车工厂网站建设目录 依赖管理关于各种的 start 依赖关于自动配置关于约定大于配置中的配置SpringBoot 整合 SpringMVC定制化 SpringMVC静态资源处理对上传文件的处理对异常的处理Web原生组件注入#xff08;Servlet、Filter、Listener#xff09;Interceptor 自定义拦截器DispatcherServlet… 目录 依赖管理关于各种的 start 依赖关于自动配置关于约定大于配置中的配置SpringBoot 整合 SpringMVC定制化 SpringMVC静态资源处理对上传文件的处理对异常的处理Web原生组件注入Servlet、Filter、ListenerInterceptor 自定义拦截器DispatcherServlet 配置映射路径定制 内嵌的 服务器定制化总结 SpringBoot 整合 MybatisSpringBoot 整合 MybatisPlus 依赖管理 每个刚创建的 SpringBoot 项目的 pom 文件都有spring-boot-starter-parent依赖然后它还有一个父依赖spring-boot-dependenciesspring-boot-dependencies 决定了 SpringBoot 项目的依赖版本但是如果不遵循也是可以的可以自己导入新的依赖版本如果遵循 SpringBoot 的版本引入相应的依赖的时候依赖的坐标就可以不标明版本号了 关于各种的 start 依赖 导入这些 start 依赖就是导入了和这个 start 依赖 有关的组件的所有相关依赖然后再通过 SpringBoot 的自动配置做到开箱即用 关于自动配置 自动配置主要看 启动类 的注解 SpringBootApplication其中最主要的是注解 EnableAutoConfiguration这个注解又包含AutoConfigurationPackage、Import(AutoConfigurationImportSelector.class)AutoConfigurationPackage包含Import(AutoConfigurationPackages.Registrar.class)其中AutoConfigurationPackages.Registrar.class的作用就是得到 启动类 所在的包路径然后扫描包路径下的所有 类 该添加到容器的添加不该添加的忽略Import(AutoConfigurationImportSelector.class)的关键就是AutoConfigurationImportSelector.class这个类是实现自动配置的主要入口主要的逻辑顺序是org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#getCandidateConfigurationsorg.springframework.core.io.support.SpringFactoriesLoader#loadFactoryNamesorg.springframework.core.io.support.SpringFactoriesLoader#loadSpringFactories经过上面的调用步骤最终关键的就是classLoader.getResources(META-INF/spring.factories)所以实现自动配置就是扫描引入依赖的类路径下的spring.factories中的内容这个文件中的类容就是各种配置类 随便点开一个自动配置类就会发现各种Bean、Conditional、EnableConfigurationProperties、ConditionalOnMissingBean...这些注解就是自动配置的关键满足条件就会注册到容器中并且还会带默认的配置这就是开箱即用约定大于配置 关于约定大于配置中的配置 前面已经知道自动配置的来源就是各种自动配置类以 SpringMVC 的相关的自动配置类 WebMvcAutoConfiguration 为例可以观察到类似EnableConfigurationProperties({WebProperties.class})、ConditionalOnProperty( prefix spring.mvc.problemdetails, name {enabled},havingValue true )、ConditionalOnProperty(prefix spring.mvc.formcontent.filter, name {enabled},matchIfMissing true)...通过这样带有配置关键字的注解可以发现要么在注解上就标明了配置内容和默认值要么就是通过 xxxProperties 这样的类其中内容也大多是如图所示的内容可以发现就是一些配置文件里面的内容如果没有配置也会有默认值 SpringBoot 整合 SpringMVC 定制化 SpringMVC 定制化功能主要通过观察 SpringMVC 的自动配置类通过实现 WebMvcConfigurer 接口作为配置类添加自定义的功能 通过在配置类中 创建 HiddenHttpMethodFilter 的实例到容器自定义 HiddenHttpMethodFilter 需要先开启配置spring.mvc.hiddenmethod.filter.enabledtrue 在配置类上使用 EnableWebMvc 意味着完全自定义 SpringMVC 相当于回到最原始的 web 程序开发 静态资源处理 静态资源处理已经默认开启spring.resources.add-mappingstrue默认的静态资源路径如下参照 自动配置类 WebMvcAutoConfiguration 引入了 webMvcProperties 的属性配置 自定义静态资源路径spring.resources.static-locations{ classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/ }自定义静态资源请求路径映射spring.mvc.static-path-pattern/**默认就是/**让客户端缓存静态资源spring.resources.cache.period10000单位是s 对上传文件的处理 SpringBoot 默认已经配置好 文件上传需要的 依赖和配置但是还是要设置文件的大小配置的 # 单个文件的最大限制 spring.servlet.multipart.max-file-size10MB # 整个请求的最大限制 spring.servlet.multipart.max-request-size100MB对异常的处理 对异常的处理SpringBoot 已经有了默认的配置 直接 在静态资源路径 添加 错误码.html如5xx.html就对应5开头的错误码比如500这种方式利用了默认配置改变的只是错误的展示页面使用的是 DefaultHandlerException—DefaultErrorViewResolver直接 创建一个 名字是 ErrorController 的处理器这种方式错误的处理和页面跳转完全由开发者控制直接 在配置类中 创建一个 ErrorAttributes 的实例这种方式只是修改了错误的提示信息依然还是使用 DefaultHandlerException—DefaultErrorViewResolver 自定义实现 HandlerExceptionResolver 处理异常可以作为默认的全局异常处理规则ControllerAdviceExceptionHandler处理全局异常底层是 ExceptionHandlerExceptionResolver 支持的 /*** 处理整个web controller的异常*/ Slf4j ControllerAdvice public class GlobalExceptionHandler {ExceptionHandler({ArithmeticException.class,NullPointerException.class}) //处理异常public String handleArithException(Exception e){log.error(异常是{},e);return login; //视图地址} }ResponseStatus 自定义异常实际上是交给ResponseStatusExceptionResolver处理最终由 Tomcat 发送错误信息返回前端只改变了错误信息而且使用的是最原始的 Tomcat 错误页面 ResponseStatus(value HttpStatus.FORBIDDEN,reason 用户数量太多) public class UserTooManyException extends RuntimeException {public UserTooManyException(){}public UserTooManyException(String message){super(message);} }Web原生组件注入Servlet、Filter、Listener 通过注解 WebFilter、WebServlet、WebListener通过 Servlet、Filter、Listener 它们的子类然后在配置类中注册 Interceptor 自定义拦截器 自定义的拦截器对于自定义的 servlet 不起作用因为 拦截器起作用是建立在 DispatcherServlet 的代码逻辑上的 org.springframework.web.servlet.DispatcherServlet#doDispatch --- org.springframework.web.servlet.HandlerExecutionChain#applyPreHandle DispatcherServlet 配置映射路径 在 SpringBoot 中 DispatcherServlet 通过 DispatcherServletAutoConfiguration--DispatcherServletRegistrationBean--ServletRegistrationBean完成注册到容器使用的是 webMvcProperties 的属性配置修改映射路径 spring.mvc.servlet.path/默认配置也是/ 定制 内嵌的 服务器 程序启动会创建一个 web 版的IoC容器 ServletWebServerApplicationContext 其逻辑是org.springframework.boot.web.embedded.xxxxx.xxxxServletWebServerFactory#getWebServer---org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#getWebServerFactory--ServletWebServerFactoryxxxx就是下面步骤获得的服务器工厂的服务器名org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration---org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration--根据导入的依赖决定是那种服务器的 ServletWebServerFactory其中服务器工厂的自动配置类决定了我们对服务器的个性化配置的方式要么修改配置文件ServerProperties、要么模仿 ServletWebServerFactoryCustomizer 实现 org.springframework.boot.web.server.WebServerFactoryCustomizer#customize SpringMVC 的 start 默认是导入 Tomcat 依赖的如果想要换服务器应该先排除 Tomcat 依赖再导入其它服务器的依赖 定制化总结 SpringBoot 整合 Mybatis 在不使用多数据源的情况下直接从 github 上导入依赖mybatis-spring-boot-starter通过依赖中的 自动配置类 配置相关的属性通过观察自动配置类发现 会自动扫描 加了 Mapper 的 Mapper 接口并注册代理对象到容器中也可以通过在配置类or启动类上添加MapperScan避免每个 Mapper 接口都要加 Mapper两种配置方式1.配置文件xmconfig-locationl、2.配置文件yum/propertiesconfiguration两种方式只能选择一种 # 配置mybatis规则 mybatis: # config-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*.xmlconfiguration:map-underscore-to-camel-case: tru可以实现全注解开发不需要映射文件xml直接在 Mapper 接口的方法上添加对应的注解如Select对应映射文件中select标签、Option对应各种语句标签的属性如Option(useGeneratedKeys true,keyProperty id) SpringBoot 整合 MybatisPlus
http://www.dnsts.com.cn/news/92886.html

相关文章:

  • 创建网站制作仪表企业app开发网上app开发
  • 如何做网站主页网站建设需要度搜去
  • sem竞价教程搜索引擎优化文献
  • 无锡网站建设优化公司蚌埠网站建设公司cztv
  • 太原高级seo主管宁波seo推广优化怎么做
  • 做外贸学网站怎么部署自己的网站
  • 网站301检测建设银行江苏省行网站
  • 上海市网站seo公司桂林百姓网
  • 网站需要哪些证件安仁网络推广软件定制开发
  • 自己的网站怎么做美工洪泽网站建设
  • 建网站用什么工作站最简单的做网站
  • 分类信息网站的建设维护页面设计有哪几种风格
  • 3深圳网站建设赣州网络公司电话
  • 目前建设网站中国移动积分商城
  • 长沙简单的网站建设公司自行网站建设费用预算
  • 网站留言程序怎么做网站建设与网页制作教程
  • 网站域名实名认证wordpress关闭略缩图
  • 西安网站建设推广服务大型局域网组建方案
  • 电子商务网站建设思维导图济南城市建设集团 网站
  • 什么网站可以帮别人做数据分析赚钱在线做数据图的网站
  • 设计制作网站的公司路由器端口转发做网站访问量
  • 网站二级域名怎么做wordpress自定义字段判断
  • 冠县做网站河南省住房和城乡建设厅电话
  • 网站推广模板汽车技术资料网站建设
  • 广州网站建设公司小程序wordpress计费查询
  • 深圳网站搭建哪里找哪里有网站建设联系方式
  • 如何在百度上建立自己的网站河北建设人才网官网
  • 营销型网站的要素asp.net网站sql权限设置
  • 一般网站栏目结构深圳微信网站公司哪家好
  • 免费cad图纸下载网站广州有哪些做网站的公司