自学内容网 自学内容网

Java程序设计:spring boot(2)

目录

1 Spring MVC 零配置创建与部署

1.1 创建Spring MVC Web⼯程

1.2 pom.xml 添加坐标相关配置

1.3 添加源代码

1.4 添加视图

1.5 SpringMVC 配置类添加

1.6 入口文件代码添加

1.7 部署与测试

2 Spring Boot 概念&特点

2.1 框架概念

2.2 框架特点

2.3 Spring Boot 快速⼊⻔

2.3.1 环境准备:Idea、Maven、Jdk 1.8+ 、Spring Boot 2.x

2.3.2 创建项目

2.3.3 添加依赖坐标

2.3.4 导⼊Spring Boot的web坐标与相关插件

2.3.5 添加源代码

2.3.6 创建启动程序

2.3.7 启动Spring Boot应⽤并测试


1 Spring MVC 零配置创建与部署

1.1 创建Spring MVC Web⼯程

       创建 Maven 的 web 项⽬

1.2 pom.xml 添加坐标相关配置

<!-- spring web -->
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>5.2.4.RELEASE</version>
</dependency>
<!-- spring mvc -->
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>5.2.4.RELEASE</version>
</dependency>
<!-- web servlet -->
<dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>javax.servlet-api</artifactId>
 <version>3.0.1</version>
</dependency>
<build>
 <finalName>springmvc</finalName>
 <plugins>
 <!-- 指定Maven编译的JDK版本和编码 -->
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>2.3.2</version>
 <configuration>
 <source>1.8</source>
 <target>1.8</target>
 <encoding>utf-8</encoding>
 </configuration>
 </plugin> 
</plugins>
</build>

1.3 添加源代码

@Controller
public class HelloController {
 @RequestMapping("/index")
 public String index(){
 return "index";
 }
}

1.4 添加视图

在 WEB-INF/views ⽬录下创建 index.jsp(这⾥以jsp为模板):

<html>
 <body>
 <h2>Hello mvc!</h2>
 </body>
</html>

1.5 SpringMVC 配置类添加

       Spring Mvc 配置信息 MvcConfig ⽂件添加,作为 Mvc 框架环境,原来是通过 xml 来进⾏配置 (视图 解析器、Json转换器、⽂件上传解析器等),这⾥基于注解通过继承 WebMvcConfigurerAdapter 类并 重写相关⽅法来进⾏配置 (注意通过 @EnableWebMvc 注解来启动 MVC 环境)。

/**
* MVC 基本配置
*/
// 配置类
@Configuration
// 在@Configuration注解的配置类中添加,⽤于为该应⽤添加SpringMVC的功能
@EnableWebMvc
// 扫描包范围
@ComponentScan("com.xxxx.springboot")
public class MvcConfig {
 /**
 * 配置 JSP视图解析器
 * @return
 */
 @Bean // 将⽅法返回的结果交给IOC容器维护
 public InternalResourceViewResolver viewResolver(){
 // 获取视图解析器
 InternalResourceViewResolver viewResolver = new
InternalResourceViewResolver();
 // 设置前缀
 viewResolver.setPrefix("/WEB-INF/views/");
 // 设置后缀
 viewResolver.setSuffix(".jsp");
 // 返回解析器对象 (交给IOC容器进⾏维护)
 return viewResolver;
 }
}

       MvcConfig 类定义好了,那么问题来了,怎么加载 MvcConfig 类呢,原来在构建 Mvc 应⽤时是通过容器启动应⽤时加载 web.xml ⽂件实现配置⽂件加载,现在的环境 web.xml ⽂件不存在,此时基于注 解⽅式构建的 Mvc 应⽤,定义 WebInitializer 实现 WebApplicationInitializer 接⼝ (该接⼝⽤来配置 Servlet3.0+ 配置的接⼝,⽤于替代 web.xml 配置),当 servlet 容器启动Mvc应⽤时会通过 SpringServletContainerInitializer 接⼝进⾏加载,从⽽加载 Mvc 应⽤信息配置。实现该接⼝ onStartup ⽅法 ,加载应⽤信息配置。

1.6 入口文件代码添加

/**
* 实现 WebApplicationinitializer 接⼝的类都可以在web应⽤程序启动时被加载
*/
public class WebInitializer implements WebApplicationInitializer {
 @Override
 public void onStartup(ServletContext servletContext) throws
ServletException {
 // 基于Java的配置类加载Spring的应⽤上下⽂
 AnnotationConfigWebApplicationContext ctx = new
AnnotationConfigWebApplicationContext();
 // 注册 Mvc 配置信息
 ctx.register(MvcConfig.class);
 // 设置 ServletContext 上下⽂信息
 ctx.setServletContext(servletContext);
 // 配置转发器 Dispatcher
 ServletRegistration.Dynamic servlet =
servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));
 // 设置映射路径
 servlet.addMapping("/");
 // 启动时即实例化 Bean
 servlet.setLoadOnStartup(1);
 }
}

1.7 部署与测试

       通过 Tomcat 启动项⽬并访问

       此时地址访问成功。

       当项⽬访问成功后,那么问题来了,如果项⽬中存在静态资源⽂件,Handler 放⾏处理该如何配置, 定义的拦截器怎么应⽤,此时关注 WebMvcConfigurationSupport ⽗类⽅法,重写相关⽅法即可。

// 静态资源 handler不进⾏处理 直接响应到客户端
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer
configurer) {
 configurer.enable();
}
// 配置拦截器
@Bean
public LoginInterceptor loginInterceptor(){
 return new LoginInterceptor();
}
// 添加拦截器到mvc 环境
@Override
public void addInterceptors(InterceptorRegistry registry) {
 registry.addInterceptor(loginInterceptor());
}

2 Spring Boot 概念&特点

2.1 框架概念

       随着动态语⾔流⾏(Ruby、Scala、NodeJs等),Java 开发变得相对笨重,配置繁琐,开发效率低下, 部署流程复杂,以及第三⽅集成难度也相对较⼤,针对该环境,Spring Boot 被开发出来,其使⽤“习惯 ⼤于配置⽬标”,借助Spring Boot 能够让项⽬快速运⾏起来,同时借助 Spring Boot 可以快速创建 web 应⽤并独⽴进⾏部署(jar包 war 包⽅式,内嵌 servlet 容器),同时借助 Spring Boot 在开发应⽤时可以 不⽤或很少去进⾏相关 xml 环境配置,简化了开发,⼤⼤提⾼项⽬开发效率。

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

2.2 框架特点

       创建独⽴ Spring 应⽤程序、嵌⼊式 Tomcat、Jetty 容器、⽆需部署 WAR 包、简化 Maven 及 Gradle 配置、尽可能⾃动化配置 Spring、直接植⼊产品环境下的实⽤功能,⽐如度量指标、健康检查及扩展配 置、⽆需代码⽣成及 XML 配置等,同时 Spring Boot 不仅对 web 应⽤程序做了简化,还提供⼀系列的 依赖包来把其它⼀些⼯作做成开箱即⽤。

2.3 Spring Boot 快速⼊⻔

2.3.1 环境准备:Idea、Maven、Jdk 1.8+ 、Spring Boot 2.x

2.3.2 创建项目

       通过 Maven 创建⼀个普通的 java 项⽬

2.3.3 添加依赖坐标

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.2.2.RELEASE</version>
</parent>
<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
</dependencies>

       Spring Boot 的项⽬必须要将 parent 设置为 Spring Boot 的 parent,该 parent 包含了⼤量默认的配 置,简化程序的开发。

2.3.4 导⼊Spring Boot的web坐标与相关插件

<plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

2.3.5 添加源代码

@Controller
public class HelloController {
 @RequestMapping("hello")
 @ResponseBody
 public String hello(){
 return "Hello SpringBoot";
 }
}

2.3.6 创建启动程序

       在 HelloController.java 所在包下,创建 StarterApplication.java

@SpringBootApplication
public class Starter{
 public static void main(String[] args) {
 SpringApplication.run(Starter.class);
 }
}

2.3.7 启动Spring Boot应⽤并测试

这⾥运⾏main ⽅法即可,通过浏览器访问 http://localhost:8080/hello 效果如下:


原文地址:https://blog.csdn.net/cxx0316/article/details/142973831

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!