springboot 启动类_《SpringBoot入门》

  1. SpringBoot介绍
    1. 什么是Spring Boot?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

  1. Spring Boot有哪些特点?

v2-c9063a71707c221802a172419db1994c_b.jpg
  1. 构建SpringBoot项目以及启动器讲解
    1. Spring Boot常见的启动器有哪些?

spring-boot-starter-web是web的启动器,可以为全栈式的开发提供支持,包含tomcat、springmvc等jar包

spring-boot-starter-jdbc:支持spring以jdbc方式操作数据库的jar包的集合

spring-boot-starter-redis:支持redis键值存储的数据库操作

  1. Spring Boot的Web启动器的坐标是什么?
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <version>2.1.9.RELEASE</version>
  5. </dependency>
  1. 编写HelloWorld
    1. 如何编写Spring Boot启动类?
  1. package com.bjsxt.startapp;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  5. public class StartForTestListener2 {
  6. public static void main(String[] args) {
  7. SpringApplication.run(StartForTestListener2.class,args);
  8. }
  9. }
  1. 编写Spring Boot启动类时需要注意什么?

启动器存放的位置。启动器可以和 controller 位于同一个包下,或者位于 controller 的上一级 包中,但是不能放到 controller 的平级以及子包下。

  1. Spring Boot整合Servlet
    1. Spring Boot整合Servlet有几种方式?

两种

  1. 各种方式有什么特点?

1.注解方式:

Servlet类:

  1. package com.bjsxt.servlet;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.IOException;
  8. /**
  9. * @author QinC
  10. *
  11. * 原来在web.xml配置文件中需要做的配置(if you are still use the web.xml configuration file ,you should configure it):
  12. * <servlet>
  13. * <servlet-name>FirstServlet<servlet-name/>
  14. * <servlet-class>com.bjsxt.servlet.FirstServlet</servlet-class>
  15. * </servlet>
  16. * <servlet-mapping>
  17. * <servlet-name>FirstServlet</servlet-name>
  18. * <url-pattern>/first</url-pattern>
  19. * </servlet-mapping>
  20. *
  21. * 使用@WebServlet(name = "FirstServlet",urlPatterns = "/first")注解:
  22. * name对应:<servlet-name></servlet-name>
  23. * urlpatterns对应:<url-pattern></url-pattern>
  24. */
  25. @WebServlet(name = "FirstServlet",urlPatterns = "/first")
  26. public class FirstServlet extends HttpServlet {
  27. @Override
  28. public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  29. System.out.println("first servlet");
  30. }
  31. }

启动类:

  1. package com.bjsxt.startapp;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.web.servlet.ServletComponentScan;
  5. /**
  6. * @ServletComponentScan(basePackages = "com.bjsxt.servlet"):
  7. * 在启动时会扫描包下的@WebServlet注解,并将该类实例化(It indicates that will scan @WebServlet annotation which in the package at startup and the class will be instantiated)
  8. */
  9. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  10. @ServletComponentScan(basePackages = "com.bjsxt.servlet")
  11. public class StartApplication {
  12. public static void main(String[] args) {
  13. SpringApplication.run(StartApplication.class, args);
  14. }
  15. }

配置类方式:

  1. 1.servlet类:
  2. package com.bjsxt.servlet;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.IOException;
  8. /**
  9. * @author QinC
  10. * springboot整合servlet方式二:
  11. */
  12. public class SecondServlet extends HttpServlet {
  13. @Override
  14. public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15. System.out.println("second servlet");
  16. }
  17. }
  18. 2.配置类:
  19. package com.bjsxt.config;
  20. import com.bjsxt.servlet.SecondServlet;
  21. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  22. import org.springframework.context.annotation.Bean;
  23. import org.springframework.context.annotation.Configuration;
  24. @Configuration
  25. public class ServletConfiguration {
  26. @Bean
  27. public ServletRegistrationBean getServletRegistrationBean(){
  28. ServletRegistrationBean bean=new ServletRegistrationBean(new SecondServlet());
  29. bean.addUrlMappings("/second");//相当于设置url-pattern
  30. return bean;
  31. }
  32. }
  33. 启动类:
  34. package com.bjsxt.startapp;
  35. import org.springframework.boot.SpringApplication;
  36. import org.springframework.boot.autoconfigure.SpringBootApplication;
  37. /**
  38. * SpringBoot整合Servlet方式二:配置类方式
  39. *
  40. */
  41. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  42. public class StartApplication2 {
  43. public static void main(String[] args) {
  44. SpringApplication.run(StartApplication2.class, args);
  45. }
  46. }
  1. Spring Boot整合Filter
    1. Spring Boot整合Filter有几种方式?

两种:

  1. 注解方式
  2. 配置类方式
    1. 各种方式有什么特点?

1.注解方式:

Filter类:

  1. package com.bjsxt.filter;
  2. import javax.servlet.*;
  3. import javax.servlet.annotation.WebFilter;
  4. import java.io.IOException;
  5. /**
  6. * SpringBoot整合Filter方式一:注解方式
  7. * <filter>
  8. * <filter-name>FirstFilter</filter-name>
  9. * <filter-class>com.bjsxt.filter.FirstFilter</filter-class>
  10. * </filter>
  11. * <filter-mapping>
  12. * <filter-name>FirstFilter</filter-name>
  13. * <url-pattern>/first</url-pattern>
  14. * </filter-mapping>
  15. *
  16. *
  17. * @WebFilter(filterName = "FirstFilter",urlPatterns = {"*.do","*.jsp"}):可以使用数组的形式配置
  18. * urlPatterns,拦截多个请求
  19. */
  20. @WebFilter(filterName = "FirstFilter",urlPatterns ="/first")
  21. public class FirstFilter implements Filter {
  22. @Override
  23. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  24. System.out.println("进入Filter");
  25. filterChain.doFilter(servletRequest, servletResponse);
  26. System.out.println("离开Filter");
  27. }
  28. }

启动类:

  1. package com.bjsxt.startapp;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.web.servlet.ServletComponentScan;
  5. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  6. @ServletComponentScan("com.bjsxt.filter")
  7. public class StartForTestFilter1 {
  8. public static void main(String[] args) {
  9. SpringApplication.run(StartForTestFilter1.class,args);
  10. }
  11. }

2.配置类方式:

Filter类:

  1. package com.bjsxt.filter;
  2. import javax.servlet.*;
  3. import java.io.IOException;
  4. public class SecondFilter implements Filter {
  5. @Override
  6. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  7. System.out.println("进入Filter2");
  8. filterChain.doFilter(servletRequest, servletResponse);
  9. System.out.println("离开Filter2");
  10. }
  11. }

配置类:

  1. package com.bjsxt.config;
  2. import com.bjsxt.servlet.SecondServlet;
  3. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. @Configuration
  7. public class ServletConfiguration {
  8. @Bean
  9. public ServletRegistrationBean getServletRegistrationBean(){
  10. ServletRegistrationBean bean=new ServletRegistrationBean(new SecondServlet());
  11. bean.addUrlMappings("/second");
  12. return bean;
  13. }
  14. }

启动类:

  1. package com.bjsxt.startapp;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  5. public class StartForTestFilter2 {
  6. public static void main(String[] args) {
  7. SpringApplication.run(StartForTestFilter2.class,args);
  8. }
  9. }
  1. springBoot整合Listener
    1. Spring Boot整合Listener有几种方式?

两种 :注解方式和配置类方式

  1. 各种方式有什么特点?

1.注解:

Listener类:

  1. package com.bjsxt.listener;
  2. import javax.servlet.ServletContextEvent;
  3. import javax.servlet.ServletContextListener;
  4. import javax.servlet.annotation.WebListener;
  5. /**
  6. * SpringBoot整合Listener方式一:
  7. * <listener>
  8. * <listener-class>com.bjsxt.listener.FirstListener</listener-class>
  9. * </listener>
  10. *
  11. */
  12. @WebListener
  13. public class FirstListener implements ServletContextListener {
  14. @Override
  15. public void contextInitialized(ServletContextEvent sce) {
  16. System.out.println("listener初始化");
  17. }
  18. @Override
  19. public void contextDestroyed(ServletContextEvent sce) {
  20. }
  21. }

启动类:

  1. package com.bjsxt.startapp;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.web.servlet.ServletComponentScan;
  5. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  6. @ServletComponentScan("com.bjsxt.listener")
  7. public class StartForTestListener1 {
  8. public static void main(String[] args) {
  9. SpringApplication.run(StartForTestListener1.class,args);
  10. }
  11. }

方式二:配置类

  1. 1.Listener类:
  2. package com.bjsxt.listener;
  3. import javax.servlet.ServletContextEvent;
  4. import javax.servlet.ServletContextListener;
  5. import javax.servlet.annotation.WebListener;
  6. /**
  7. * SpringBoot整合Listener方式二:
  8. *
  9. */
  10. public class SecondListener implements ServletContextListener {
  11. @Override
  12. public void contextInitialized(ServletContextEvent sce) {
  13. System.out.println("listener2初始化");
  14. }
  15. @Override
  16. public void contextDestroyed(ServletContextEvent sce) {
  17. }
  18. }
  19. 2.配置类:
  20. package com.bjsxt.config;//package com.bjsxt.config;
  21. import com.bjsxt.listener.SecondListener;
  22. import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
  23. import org.springframework.context.annotation.Bean;
  24. import org.springframework.context.annotation.Configuration;
  25. @Configuration
  26. public class ListenerConfiguration {
  27. @Bean
  28. public ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){
  29. return new ServletListenerRegistrationBean(new SecondListener());
  30. }
  31. }
  32. 3.启动类:
  33. package com.bjsxt.startapp;
  34. import org.springframework.boot.SpringApplication;
  35. import org.springframework.boot.autoconfigure.SpringBootApplication;
  36. import org.springframework.boot.web.servlet.ServletComponentScan;
  37. @SpringBootApplication(scanBasePackages = "com.bjsxt")
  38. public class StartForTestListener2 {
  39. public static void main(String[] args) {
  40. SpringApplication.run(StartForTestListener2.class,args);
  41. }
  42. }
  1. Spring Boot访问静态资源
    1. 在Spring Boot中访问静态资源有几种方式?

两种:

1.方式一:访问classpath路径下的static目录:

v2-5862b378d5e17ef6b4dbab09f56dbd28_b.jpg

2.方式二:在将静态资源放在src/main/webapp(需要自己创建)目录下

v2-93a8a8edb9abfd9f59eb2a94350c7a79_b.jpg

注意:该方式要在pom文件中添加:

  1. <build>
  2. <resources>
  3. <resource>
  4. <directory>src/main/webapp</directory>
  5. <targetPath>META-INF/resources</targetPath>
  6. <includes>
  7. <include>**/**</include>
  8. </includes>
  9. </resource>
  10. </resources>
  11. </build>

让src/main/webapp在编译的时候在resoureces路径下也生成webapp的文件

  1. Spring Boot文件上传
    1. 在Spring Boot中如何设置单个上传文件大小?

v2-0fb97705e8d3f4b3f66c1ecece0c50d8_b.jpg
  1. 在Spring Boot中如何设置一次请求上传文件大小?

v2-17a0755115faf170e2d5982f0e286ed8_b.jpg
  1. Spring Boot整合jsp
    1. 在Spring Boot中整合jsp需要添加哪些坐标?
  1. <dependency>
  2. <groupId>javax.servlet</groupId>
  3. <artifactId>jstl</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.apache.tomcat.embed</groupId>
  7. <artifactId>tomcat-embed-jasper</artifactId>
  8. <scope>provided</scope>
  9. </dependency>
  1. Spring Boot整合Freemarker
    1. 在Spring Boot中整合Freemarker需要添加哪些坐标?
  1. <!-- freemarker启动器的坐标 -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-freemarker</artifactId>
  5. </dependency>
  1. Freemarker视图的扩建名是什么?

.ftl

v2-65c5a706782089be6c78649d8f24bb80_b.jpg
  1. Thymeleaf入门-创建项目
    1. 在Spring Boot中整合Thymeleaf需要添加哪些坐标?
  1. <!--添加Thymeleaf启动器依赖-->
  2. <dependency>
  3. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  4. <groupId>org.springframework.boot</groupId>
  5. </dependency>
  1. Thymeleaf视图的扩建名是什么?

.html

v2-1ff816e71a2de9b572bbc31e839d103a_b.jpg
  1. Thymeleaf视图要求放到项目的哪个目录下?

必须放在resources/templates目录下

  1. Thymeleaf入门-Thymeleaf基本使用
    1. Thymeleaf的特点是什么?

Thymeleaf:Thymelaef 是通过他特定语法对 html 的标记做渲染。

  1. 在使用Thymeleaf时页面会出现什么异常?

v2-9eb869c4e054a84c98d754bee7978637_b.jpg
  1. 解决Thymeleaf中标签匹配的异常有几种方式?

两种:

  1. 让 html 的标记按照严禁的语法去编写。
  2. Thymeleaf.jar:更新为 3.0 以上的版本 thymeleaf-layout-dialect.jar:更新为 2.0 以上的版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值