当前位置: 首页 > wzjs >正文

网站开发应用价值bing搜索引擎入口

网站开发应用价值,bing搜索引擎入口,水头做网站,品牌企业seo咨询Spring Boot真正的核心功能是自动配置和快速整合,通常Spring Boot应用的前端MVC框架依然使用Spring MVC。Spring Boot提供的spring-boot-starter-web启动器嵌入了Spring MVC的依赖,并为Spring MVC提供了大量自动配置,可以适用于大多数Web开发…

Spring Boot真正的核心功能是自动配置和快速整合,通常Spring Boot应用的前端MVC框架依然使用Spring MVC。Spring Boot提供的spring-boot-starter-web启动器嵌入了Spring MVC的依赖,并为Spring MVC提供了大量自动配置,可以适用于大多数Web开发场景。 除了使用自动配置所提供的功能,开发者也可以通过自定义配置类定制Spring MVC的配置。

Spring Boot为Spring MVC自动配置提供的特性

在Spring Boot项目中,一旦引入了Web依赖启动器spring-boot-starter-web,那么Spring Boot整合Spring MVC框架默认实现的一些XxxAutoConfiguration自动配置类就会自动生效,几乎可以在无任何额外配置的情况下进行Web开发。

Spring Boot为Spring MVC提供了自动配置,并在Spring MVC默认功能的基础上添加了以下特性。

(1)引入了视图解析器 ContentNegotiatingViewResolver和BeanNameViewResolver。

(2)为包括WebJars在内的静态资源提供支持。

(3)自动注册 Converter、GenericConverter和Formatter。

(4)支持使用HttpMessageConverters消息转换器。

(5)自动注册 MessageCodesResolver。

(6)支持静态项目首页index.html。

(7)支持定制应用图标favicon.ico。

(8)自动初始化Web数据绑定器ConfigurableWebBindingInitializer。

自定义Spring MVC配置

在Spring Boot应用中使用Spring MVC时,如果希望在为Spring MVC自动配置提供相关特性的同时,再增加一些自定义的Spring MVC配置,例如添加拦截器、视图控制器等,可以通过自定义WebMvcConfigurer类型的配置类来实现。

1.配置静态资源映射

通常Web应用中会需要使用静态资源,例如,JavaScript文件、CSS文件和HTML文件等。单独使用Spring MVC时,导入静态资源文件后,需要配置静态资源的映射,否则无法正常访问。Spring Boot中提供了默认的静态资源映射,当访问项目中任意的静态资源时,Spring Boot会默认从以下路径中从上往下进行查找:

(1)classpath:/META-INF/resources/

(2)classpath:/resources/

(3)classpath:/static/

(4)classpath:/public/

这个查找顺序可以通过源码查看:WebMvcAutoConfiguration--》搜索getStaticLocations--》进入该方法--》寻着轨迹就能找到。

修改静态资源存放位置:

spring.resources.static-locations=字符串数组

例如:

在chapter03项目中的 src/main/resources/static和 src/main/resources目录下分别创建main.html文件和index.html文件,并在项目启动后分别在浏览器中对这两个静态资源进行访问。

如果想访问非默认静态资源文件夹下的资源,可以通过配置类和配置文件2种方式实现自定义静态资源的映射。

(1)通过配置类实现静态资源映射

配置类需要实现WebMvcConfigurer接口,在重写该接口的addResourceHandlers()方法中指定资源访问路径和资源之间的映射关系。

(2)通过配置文件实现静态资源映射

Spring Boot在Spring MVC的自动配置中提供了对应的属性可以配置静态资源访问路径和资源的映射。

下面以通过配置类实现静态资源映射为例,演示配置静态资源映射。

(1)创建静态资源。

在src/main/resources目录下,创建文件夹backend,并在文件夹中创建HTML文件index.html和login.htm。

(2)配置静态资源映射。

在config子包下创建配置类WebMvcConfig,该配置类实现WebMvcConfigurer接口,并重写该接口的方法实现自定义Spring MVC的配置,具体如文件3-11所示。

import  org.springframework.context.annotation.Configuration;
import  org.springframework.web.servlet.config.annotation.
ResourceHandlerRegistry;
import  org.springframework.web.servlet.config.annotation.
WebMvcConfigurer;
@Configuration
public  class  WebMvcConfig implements  WebMvcConfigurer {@Overridepublic  void  addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");}}

 (3)测试程序效果。启动项目,在浏览器中访问backend文件夹下的index.html。

2.配置视图控制器

使用Spring MVC默认的配置进行开发时,如果仅实现无业务逻辑的页面跳转,也需要创建Controller类,然后定义方法跳转到页面,操作比较麻烦。对此,可以在视图控制器中添加自定义的映射,直接将请求映射为视图。

下面通过案例演示在视图控制器中配置请求和视图的映射,具体如下。

(1)配置视图控制器映射信息。在文件3-11中重写WebMvcConfigurer接口的addViewControllers()方法,在该方法中添加访问路径和视图的映射。

@Override
public void addViewControllers(ViewControllerRegistry registry) {/*如果在thymeleaf中会出错,因为配置了前缀和后缀,*视图名"/backend/login.html"加上前缀后缀后,这个地址肯定不存在,*直接写逻辑视图名即可*/	    //registry.addViewController("/backend/toLoginPage").setViewName("/backend/login.html");//registry.addViewController("/backend").setViewName("/backend/index.html");//在thymeleaf环境下访问模板页面registry.addViewController("/backend/toLoginPage2").setViewName("login");registry.addViewController("/backend").setViewName("index");
}

(2)测试程序效果。启动项目,在浏览器中访问http://localhost:8080/backend/toLoginPage2。

总结:只适合较为简单的无参数get请求跳转,对于有参数或者需要业务处理的跳转需求,最好采用传统方式。

3.配置拦截器

拦截器可以根据请求的URL对请求进行拦截,主要应用于登录校验、权限验证、乱码解决、性能监控和异常处理等方面。在Spring Boot项目中配置拦截器也非常简单,只需要定义拦截器和注册拦截器即可。 

拦截过程

下面通过案例演示在Spring Boot项目中配置拦截器。

(1)定义拦截器。创建interceptor子包,在该包下创建拦截器类,该类实现了 HandlerInterceptor接口,并重写了接口的preHandle()方法,具体如文件3-12所示。

@Component
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {// 获取请求路径String requestURI = request.getRequestURI();// 获取登录用户Object loginUser = request.getSession().getAttribute("loginUser");// 如果请求路径是"/backend"开头的,并且用户没有登录,//那么将请求重定向到登录页面或者内部转发if (requestURI.startsWith("/backend") && loginUser == null) {response.sendRedirect("/toLoginPage");//request.getRequestDispatcher("/toLoginPage").forward(request,response);return false;}return true;}}

(2)注册拦截器。

在文件3-11中重写WebMvcConfigurer接口的addInterceptors()方法,在该方法中添加拦截器。

    @Autowiredprivate LoginInterceptor loginInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/toLoginPage");}

(3)效果测试

重启项目,启动成功后,在浏览器上访问http://localhost:8080/backend

动手试一试

不拦截静态资源,比如图片,css 。

http://www.dtcms.com/wzjs/80702.html

相关文章:

  • 网站流量软件免费推广引流软件
  • 用手机如何做网站鄞州seo整站优化服务
  • 网站源码怎么绑定域名新浪博客seo
  • 网站建设就是学淘宝吗安装百度到桌面
  • 金泉网站建设开发搜索优化
  • app和网站的区别是什么seo查询 工具
  • 嘉兴自助模板建站中国网站排名前100
  • 家电照明电子通用网站模板百度识图官网
  • 亿网网络科技有限公司金华百度seo
  • 网站建设安全协议书谷歌seo怎么做
  • 58同城企业网站怎么做的在线培训app
  • 网站的二级目录怎么做今天新闻
  • 做seo怎么设计网站如何做网站平台
  • 什么是网站的空间广告优化师发展前景
  • 中国疫情最新消息数据实时更新深圳网站设计实力乐云seo
  • 企业站群cms营销方式和渠道
  • wordpress 海 主题厦门seo网站推广
  • 建网站公司是如何赚钱百度关键词如何优化
  • 开原 铁岭网站建设怎么样做推广最有效
  • vps搬家wordpress沧州网站优化公司
  • 建立网站需要钱吗百度广告语
  • 平台公司市场化转型深圳网站seo哪家快
  • 网站做直链下载存储解决方案20个排版漂亮的网页设计
  • 浙江省和住房建设厅网站淘宝seo软件
  • 后台管理网站模板关键词推广系统
  • 广州网站建设提供商中国十大电商培训机构
  • 网站建设赚钱网站提交入口百度
  • 创新的响应式网站建设优化关键词快速排名
  • 怎么黑掉织梦做的网站百度提问登陆入口
  • 美国房产网站成都seo网络优化公司