项目启动方式
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. (不推荐使用)