SpringBoot与Web开发

本文介绍了SpringBoot在Web开发中的应用,包括自动配置原理、静态资源映射规则,重点讲解了Thymeleaf模板引擎的引入和使用,并探讨了SpringMVC的自动配置和扩展。同时,内容涵盖RestfulCRUD操作,如登陆、国际化和员工列表功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Web开发

使用SpringBoot:
1) 创建SpringBoot应用,选中我们需要的模块
2) SpringBoot已经默认将这些场景配置好了,只需要在配置文件中进行少量配置,即可以运行起来
3) 自己编写业务代码

自动配置原理?
这个场景SpringBoot帮我们配置了什么?能不能进行修改?能修改哪些配置?能不能进行扩展?

xxxxAutoConfiguration:帮我们给容器中自动配置组件
xxxxProperties:配置类来封装配置文件的内容

二、SpringBoot对静态资源的映射规则

@ConfigurationProperties(
    prefix = "spring.resources",
    ignoreUnknownFields = false
)
public class ResourceProperties {
   
//可以设置和静态资源有关的参数,比如缓存时间等
public void addResourceHandlers(ResourceHandlerRegistry registry) {
   
  if (!this.resourceProperties.isAddMappings()) {
   
       logger.debug("Default resource handling disabled");
   } else {
   
       Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
       CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
       if (!registry.hasMappingForPattern("/webjars/**")) {
   
           this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{
   "/webjars/**"}).addResourceLocations(new String[]{
   "classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
       }

       String staticPathPattern = this.mvcProperties.getStaticPathPattern();
       if (!registry.hasMappingForPattern(staticPathPattern)) {
   
           this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{
   staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
       }

   }
}


//配置欢迎页映射
@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext, FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
   
    WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(new TemplateAvailabilityProviders(applicationContext), applicationContext, this.getWelcomePage(), this.mvcProperties.getStaticPathPattern());
    welcomePageHandlerMapping.setInterceptors(this.getInterceptors(mvcConversionService, mvcResourceUrlProvider));
    return welcomePageHandlerMapping;
}
  1. 所有/webjars/**,都去classpath:/META-INF/resources/webjars/找资源
      以jar包的方式引入静态资源,官方网站
    在这里插入图片描述
    引入webjars
    在这里插入图片描述
    http://localhost:8080/webjars/jquery/3.2.1/src/jquery.js
<!-- 引入jQuery的Webjars--> 在访问的时候只需要写webjars下面资源的名称即可
<dependency> 
    <groupId>org.webjars.bower</groupId>
    <artifactId>jquery</artifactId>
    <version>3.2.1</version>
</dependency>

2)this.staticPathPattern = "/**";,访问当前项目的任何资源(静态资源的文件夹)

"classpath:/META-INF/resources/",
"classpath:/resources/", 
"classpath:/static/",
"classpath:/public/"
"/"

localhost:8080/abc =》 取静态资源文件夹里面找abc
3)欢迎页:静态资源文件夹下的所有index.html页面;被"/**"映射
  localhost:8080/ 找index页面
4)所有的**/favicon.ico都是在静态资源文件下找,(部分浏览器需要清除缓存、记录等)。

三、模板引擎

JSP、Velocity、Thymeleaf;
在这里插入图片描述
SpringBoot推荐的Thymeleaf模板引擎;
语法更简单、功能更强大。

3.1 引入Thymeleaf

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

3.2 Thymeleaf使用&语法

@ConfigurationProperties(
    prefix = "spring.thymeleaf"
)
public class ThymeleafProperties {
   
    private static final Charset DEFAULT_ENCODING;
    public static final String DEFAULT_PREFIX = "classpath:/templates/";
    public static final String DEFAULT_SUFFIX = ".html";
    private 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值