首页 文章 精选 留言 我的

精选列表

搜索[springboot2],共10009篇文章
优秀的个人博客,低调大师

SpringBoot2初体验,简单认识spring boot2并且搭建基础工程

前言 发展史 Spring boot 1.1(2014 年 6 月) - 改进的模板支持,gemfire 支持,elasticsearch 和 apache solr 的自动配置。 Spring Boot 1.2(2015 年 3 月) - 升级到 servlet 3.1 / tomcat 8 / jetty 9,spring 4.1 升级,支持 banner / jms / SpringBootApplication 注解。 Spring Boot 1.3(2016 年 12 月) - Spring 4.2 升级,新的 spring-boot-devtools,用于缓存技术(ehcache,hazelcast,redis 和 infinispan)的自动配置以及完全可执行的 jar 支持。 Spring boot 1.4(2017年1月) - spring 4.3 升级,支持 couchbase / neo4j,分析启动失败和RestTemplateBuilder。 Spring boot 1.5(2017年2月) - 支持 kafka / ldap,第三方库升级,弃用 CRaSH 支持和执行器记录器端点以动态修改应用程序日志级别。 Spring boot 2.0(2018 年 03 月)-基于 Java 8,支持 Java 9,支持 Quartz ,调度程序大大简化了安全自动配置,支持嵌入式 Netty。 SpringBoot 1.x再见,拥抱SpringBoot 2.x 2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 如今 Spring Boot 1.X 版本最后将永久的定格在 v1.5.22.RELEASE,其实回想起来自从 Spring Boot 1.0 发布已经过去了 5 年多,相当于 Spring Boot 一年发布一个大的子版本,然后到了现在的 1.5.x。 正在使用 Spring Boot 1.x 需要立刻升级吗? spring Boot 1.x 只是停止维护,并不是不能用了,如果你不是特别着急想用 Spring Boot 2.x 的新特性,再用个几年也是没有任何问题的。 Spring Boot 1.x 到 2.x 中间更新了很多 API 以及依赖组件。升级时需要先将 Spring Boot 1.X 系列升级到 1.5.x,再从 1.5.x 升级到 2.x 最新稳定版本。 Spring Boot 2.x 对 Java 环境的要求最低为 JDK 8,可能还有很多的公司服务器还在 1.6 或者 1.7 的环境中跑着,升级的时候也需要先升级服务器的基础环境。 如果项目中使用了微服务架构,建议可以一个一个子服务进行升级,不要一次全部升级完成,保障整个服务在升级过程的稳定性。 建立Springboot工程有两种方式 1.通过官网快速构建 2.手动构建Springboot工程 注:这两种方式在本文都会提到,本文仅构建简单的Springboot工程,如果需要构建Maven聚合的Springboot工程请期待后续文章 一.官网快速构建 1.Springboot官网提供了一个快速构建工程的方案 网址:https://start.spring.io/ 填写一些基本信息 2.下载并解压工程(工程目录如下,是一个标准的Maven工程) 3.Eclipse导入Maven工程 注:请升级至Eclipse_v2019.09,否则导入代码会报错。并且该代码依赖于Maven,所以需要提前准备Maven环境,并且导入的时候需要下载Jar请耐心等待。导入完成如图所示 4.Springboot工程目录结构介绍 5.运行项目 打开SpringbootApplication.java类运行其main方法即可 注:此时项目运行在8080默认端口,用浏览器访问即可。由于我们没写任何代码仅仅测试项目所以访问会报404错误,如下图所示 二.手动构建Springboot工程 1.创建一个Maven工程 创建出来的工程如下 注:第一次创建Maven工程,需要提前准备Maven环境、并且初次创建Maven项目需要去中央仓库下载Jar包,请耐心等待。 2.修改Maven的配置文件pom.xml 添加spring-boot-starter-parent xml 复制代码 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> 添加web依赖 xml 复制代码 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> 添加springboot打包插件 xml 复制代码 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 注:由于修改了maven配置文件,工程会报错。所以需要刷新工程。 3.创建启动类 java 复制代码 package org.xujun; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringbootMyApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMyApplication.class, args); } } 4.运行项目 参考[通过官网快速构建]的启动方式即可 总结:如果你看到了以上的404报错恭喜你,项目已经构建成功了。

优秀的个人博客,低调大师

SpringBoot2编写第一个Controller,响应你的http请求并返回结果

前言: SpringBoot的Controller模块用的是SpringMvc,所以用法和MVC没有差异。 本文章主要讲解 1.如何接收一个请求 2.如何获取请求的参数 3.常用的两种返回值JSONObject和ModelAndView 4.GET请求和POST请求 5.获取路径参数 6.HttpServletRequest和HttpServletResponse对象 编码 1.新建一个HelloController.java类,代码和结构如图所示 java 复制代码 package org.xujun.springboot.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("hello") public String hello() { return "hello springboot"; } } 运行项目,并且访问[http://127.0.0.1:8080/hello]。结果如下图所示 2.请求并带参数,添加一个方法 java 复制代码 @GetMapping("hello") public String data(String name, Integer age) { System.out.println(name); System.out.println(age); return name; } 其中name和age为参数的Key,只要Key对应上即可获取到对应的值。要注意@GetMapping("data")中的URI必须不同,不然启动会报错。 运行项目,并且访问\[http://127.0.0.1:8080/data?name=xujun?age=18]。结果如下图所示 3.常用的两种返回值ajax和ModelAndView 通常我们会有两种常用的返回值,JSONObject用于相应ajax请求,ModelAndView用于输出一HTML个是的页面 输出JSONObject 本次使用的JSONObject包为阿里巴巴的fastjson包,因此先引入fastjson的jar包 打开pom.xml添加依赖 xml 复制代码 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 如图: 然后编写Controller的方法 java 复制代码 @GetMapping("json") public JSONObject json() { JSONObject data = new JSONObject(); data.put("name", "xujun"); data.put("age", 18); return data; } 运行项目,并且访问[http://127.0.0.1:8080/json]。结果如下图所示 输出ModelAndView 由于ModelAndView用于输出页面的,所以我们需要配置SpringMvc的模板解析引擎,本次采用的模板解析引擎为Freemarker(对此模板解析引擎不推荐用JSP,后期会有文章讲解如何换模板引擎),因此先要引入Freemarker引擎的jar包。 打开pom.xml添加依赖 xml 复制代码 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 如图: 然后配置Freemarker模板解析引擎 打开application.properties添加 sh 复制代码 # Freemarker配置 # spring.freemarker.enabled : Freemarker是否启用 # spring.freemarker.template-loader-path : 载入路径 # spring.freemarker.prefix : 模板文件前缀 # spring.freemarker.suffix : 模板文件后缀 # spring.freemarker.content-type : 上下文类型 # spring.freemarker.charset : 字符编码 # spring.freemarker.settings.tag_syntax : 设置标签类型([],<>) # spring.freemarker.settings.date_format : Date格式化 # spring.freemarker.settings.time_format : Time格式化 # spring.freemarker.settings.datetime_format : Datetime格式化 spring.freemarker.enabled=true spring.freemarker.template-loader-path=classpath:/static/views/ spring.freemarker.prefix= spring.freemarker.suffix=.html spring.freemarker.content-type=text/html spring.freemarker.charset=UTF-8 spring.freemarker.settings.tag_syntax=auto_detect spring.freemarker.settings.date_format=yyyy-MM-dd spring.freemarker.settings.time_format=HH:mm:ss spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss 如图: 接着在resources/static/views编写一个Freemarker模板的html页面 新建一个index.html html 复制代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <title>index</title> </head> <body> hello freemarker </body> </html> 如图: 最后编写Controller方法 java 复制代码 @GetMapping("index") public ModelAndView index() { ModelAndView mv = new ModelAndView(); mv.setViewName("index"); return mv; } 其中mv.setViewName("index");中index为模板的名字,因为前缀后缀在配置文件中已经配置,所以在此配置模板名字即可 运行项目,并且访问[http://127.0.0.1:8080/index]。结果如下图所示 4.GET请求和POST请求 由于请求方式有GET和POST,所以SpringMVC这边也有对应的注解与其对应,参考如下 @GetMapping 仅接收GET请求 @PostMapping 仅接收POST请求 @RequestMapping GET或POST请求都可接收 替换Controller方法头部对应注解即可 5.获取路径参数 有时候我们需要把URL中的某个部分取下来当作参数那就可以采用@PathVariable来绑定url参数 首先编写Controller方法 java 复制代码 @GetMapping("/list-{index}.html") public String url(@PathVariable String index) { return index; } 其中{index}为占位符,这样就可以将list-1.html中的1取出赋值到String index中。 运行项目,并且访问[http://127.0.0.1:8080/list-1.html]。结果如下图所示 6.HttpServletRequest和HttpServletResponse对象 有时候我们会在Controller中用到HttpServletRequest和HttpServletResponse对象,在Servlet中,doGet和doPost方法默认提供这两个对象,在SpringMVC中却没有。其实不然,要使用这两个对象,只要在对应的Controller方法的形参中添加这两个对象,SpringMVC就会自动注入。 如图: 总结:本文主要讲解了SpringBoot的Controller编写,由于SpringBoot采用SpringMvc框架,所以掌握SpringMvc写法即可,主要变化在于静态资源存放位置从WebContent/webapp转移到resources目录下,其他都大同小异了。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册