XD 05 - 07

项目启动方式

1. 在 springBoot application 上右键 run as Java application

2. run as mvn install 会打包一个jar 包

3. war 在 tomcat, war 包方式, 一般 springBoot 都是使用 jar 包启动了

a. 首先在 pom 文件中添加 <packaging>war</packaging>  告诉 maven 打成一个 war 包

b. 在 build 节点里, 加一个项目名称

 

接下来就可以 pom 文件右键 run as mvn install, 这样就会在 target 目录下生成一个 war 包

c. 修改启动类

d. 再重新打包一下, 现在 target 目录下文件太多了, 可以使用 pom 右键 run as mvn clean, 进行清理, 之后再 run as mvn install.

e. war 包复制出来, cope 到 tomcat 目录下的 webapps

filter 过滤器

filter 跟 controller 一样, 单独包管理.

filter 优先级, Ordered.HIGHEST_PRECEDENCE(低位值, 整型) Ordered.LOWEST_PRECEDENCE(高位值, 整型)

自定义 filter 时, 不要跟默认的优先级一样高. 会有一些默认的 filter, 比如字符 filter

自定义 filter 步骤

1. 使用 servlet3.0 注解配置

2. 启动类里增加 @ServletComponentScan 进行扫描

3. 新建一个 Filter 类, implements Filter, 实现对应接口

比如 Login filter:

@WebFilter 表示拦截的是哪个请求. 

在启动类要加入 @ServletComponentScan

如果是前后端分离的 application, 不太适合使用 filter, 而是应该使用 拦截器 更加合适.

Listener 

常用的监听器有3种:

servletContextListener: 应用启动的上下文监听器, (应用启动时, 就会调用,最先加载, 最后销毁, 主要目的是资源加载)

httpSessionListener: 

servletRequestListener: 对 servlet 请求前, 后调用, (只有真正调用时, 才触发)

自定义监听器:

 

springBoot 2.0拦截器与传统对比 

流程: (定义拦截器 -> 业务拦截)  拦截器应该单独放到一个包里, 比如 intecpter

1. @Configuration

 

其中: new LoginIntercepter() 就是我们第二步自定义的拦截器,  addPathPatternes 定义这个拦截器都拦截哪些路径. 

2. 写拦截器, source -> override 就可以自动添加.

preHandle: 进入 controller 方法之前

postHandle: 进入 controller 方法之后

afterHandle: 资源清理

afterCompletion: 不管有没有异常,都会调用, 用于资源清理

 

Listener 可以和 拦截器一起使用. 监听事件的.

SpringBoot Starter

Starter 是一个工具集, 工具集里包含很多依赖, 这样能减少依赖问题. 

Thymeleaf

轻量级模板引擎(负责逻辑业务的不推荐,解析DOM或者 XML 会占用多内存)

可以浏览器直接打开, 因为这个模板也是 html 结尾的.

还有一个模板引擎叫 Freemarker. (不推荐使用)

 

posted @ 2021-04-10 21:38  神之一招  阅读(87)  评论(0)    收藏  举报