芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息

这篇具有很好参考价值的文章主要介绍了芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java


系列文章目录

第一章 芋道 Spring Boot 快速入门



前言

芋道 SpringBoot是一款国产的SpringCloud微服务框架,包括Outh2.0、微服务网关、微服务注册中心、配置中心、消息队列、任务调度、链路追踪、服务保障等。

今天介绍下芋道 SpringBoot入门,包括SpringBoot介绍、第一个SpringBoot案例,所需要下载安装的基础工具等。


1、芋道网站

源码分析首页:https://www.iocoder.cn/
芋道 SpringBoot快速入门章:https://www.iocoder.cn/Spring-Boot/quick-start/?github

下面是我自己整理的Spingboot、微服务学习专栏,从Spingboot 零基础到微服务实战。
SpringBoot框架学习专栏:https://blog.csdn.net/s445320/category_12273537.html
SpringCloud微服务学习专栏 :https://blog.csdn.net/s445320/category_12439818.html
微服务实战专栏:https://blog.csdn.net/s445320/category_12345409.html


2、下载和安装maven工具

https://maven.apache.org/download.cgi
常用版本3:https://dlcdn.apache.org/maven/maven-3(只有最新的几个版本)
更新下载站:https://archive.apache.org/dist/maven/maven-3/ (包含从3.0 到 3.9的大多数版本)
下载解压,修改conf下的setting.xml,优先从阿里云镜像拉取关联包

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>maven.net.cn</id>
        <name>oneof the central mirrors in china</name>
        <url>http://maven.net.cn/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <url>http://repo1.maven.org/maven2/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

修改本地maven库路径

<localRepository>d:\localRepository</localRepository>

3、第一个SpringBoot 项目

3.1、初始化项目

https://start.spring.io/
芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.2、配置maven

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.3、启动项目

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

在pom.xml添加web依赖,集成内嵌tomcat

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

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.4、定义一个hello world接口

3.4.1、在Controller包下创建类,并编写hello world接口

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.4.2、通过浏览器访问接口

地址:http://localhost:8080/hello

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.5、解决接口跨域问题

3.5.1、类或方法解决接口跨域问题

1、在class或method上加上【@CrossOrigin(“*”)】,解决跨域问题

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

3.5.2、配置全局跨域

新建【config】package,添加自定义的跨域java文件

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("*")
                .maxAge(1800)
                .allowedOrigins("*");
    }
}

4、接收参数

4.1、通过HttpServletRequest 接收参数

前端访问路径:http://127.0.0.1/user/login?userName=zs&pwd=123

后端Java代码:

	@RequestMapping("/login")
    public Map login(HttpServletRequest request , HttpServletResponse response) {
        // URL: http://127.0.0.1/user/login?userName=zs&pwd=123
        Map map = new HashMap();
        map.put("code" , 200);
        map.put("msg" , "success");

        //第一种方式接收入参
        String userName = request.getParameter("userName");
        String pwd = request.getParameter("pwd");
        return map;
    }

4.2、通过@RequestParam接收参数

前端访问路径:http://127.0.0.1/user/login?userName=zs&pwd=123

后端Java代码:

    @RequestMapping("/login")
    public Map login(@RequestParam(value="name" ,required=true) String userName,
                     @RequestParam(value="pwd" ,required=true) String password,
                     HttpServletResponse response) {
        // @RequestParam(value="name" ,required=true) required=true传入的值不允许为空
        // URL: http://127.0.0.1/user/login?userName=zs&pwd=123
        //第二种方式接收入参
        System.out.println(userName + "||" + password);

        Map map = new HashMap();
        map.put("code" , 200);
        map.put("msg" , "success");
        return map;
    }

4.3、通过@PathVariable 接收参数

前端访问路径:http://127.0.0.1/user/logintwo/zs/123

后端Java代码:

    @RequestMapping("/logintwo/{userName}/{pwd}")
    public Map loginTwo(@PathVariable String userName,
                        @PathVariable String pwd) {
        // URL: http://127.0.0.1/user/logintwo/zs/123
        //第三种方式接收入参
        System.out.println(userName + "||" + pwd);

        Map map = new HashMap();
        map.put("code" , 200);
        map.put("msg" , "success");

        return map;
    }

4.4、通过@RequestBody 接收参数

前端JavaScript代码:

	//针对@RequestBody 接收入参的前端ajax请求
    $.ajax({
      url: "http://localhost:8089/api/Home",
      data: JSON.stringify(obj), 
      method: "post",
      dataType: "json",
      contentType: 'application/json',
      success: function (data) {
          console.log(data)
          if (data.code == 200) {
              alert("登录成功");
          } else {
              alert("登录失败:" + data.msg);
          }
      }

后端Java代码:

    @PostMapping("/register")
    public Map register(@RequestBody User user) {
        // URL: http://127.0.0.1/user/register/
        // {userName:xxx,pwd:xxx}
        //第四种方式接收入参
        System.out.println(new Gson().toJson(user) );

        Map map = new HashMap();
        map.put("code" , 200);
        map.put("msg" , "success");

        return map;
    }

5、starter机制

starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置
比如:

<!--spring boot parent项目依赖,版本依赖-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.13</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java

Spring Boot 项目可以通过继承 spring-boot-starter-parent 来获得一些合理的默认配置,它主要提供了以下特性:

  • 默认 JDK 版本(Java 8)
  • 默认字符集(UTF-8)
  • 依赖管理功能
  • 资源过滤
  • 默认插件配置
  • 识别 application.properties 和 application.yml 类型的配置文件

6、YAML标记语言

springBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。

6.1、application.properties

server.port= 8081

6.2、application.yml

server:
 	port: 8081

6.2.1、YAML 简介

YAML 全称 YAML Ain’t Markup Language,比xml更适合做配置文件
YAML 的语法如下:

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。

比如:

 server:
 	port: 8081
 spring:
 	profiles: dev
 	datasource:
 		url: xxxxxxxxx

6.2.2、YYAML 支持以下三种数据结构

6.2.2.1、对象:键值对的集合

使用缩进表示对象与属性的层级关系

 user:
    name: Kelvin
    gender:

行内写法:

 user: {name: Kelvin,gender:}
6.2.2.2、数组:一组按次序排列的值

使用-表示集合元素

 hobbyList:
	 - run
	 - badminton
	 - mountain climb

hobbyList: [run,badminton,mountain climb]

使用,表示数组元素

hobbies:run,badminton,mountain climb
6.2.2.3、字面量:单个的、不可拆分的值

数值、日期、字符串等
YAML组织结构:一个文件可有多个文档组成,文档之间用“—”分隔

7、配置文件与JavaBean绑定

SpringBoot 提供了以下 2 种方式进行配置绑定:

7.1、使用 @ConfigurationProperties 注解

定义JavaBean

user:
  userName: Kelvin
  gender:# 对应的Bean文件里的数组
  hobbies: run, badminton, mountainclimb
  # 对应的Bean文件里的List
  hobbyList:
    - run
    - badminton
    - mountainclimb
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * 用户实体类
 */
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {

    /**
     * 名字
     */
//    @Value("${user.userName}")
    private String userName;

    /**
     * 性别
     */
//    @Value("${user.gender}")
    private String gender;

    /**
     * 爱好
     */
//    @Value("${user.hobbies}")
    private String[] hobbies;

    /**
     * 爱好
     */
    private List<String> hobbyList;

    public User() {
    }
}
@SpringBootTest
class SpringbootApplicationTests {
    /**
     * 用户实体类对象
     */
    @Autowired
    private User user;

    @Test
    void contextLoads() {
        System.out.println("#############user: " + user);
    }
}

打印日志:#############user: User{name=‘Kelvin’, gender=‘男’, hobbies=[run, badminton, mountainclimb]}

7.2、使用 @Value 注解

/**
 * 用户实体类
 */
@Component
public class User {
    /**
     * 名字
     */
    @Value("${user.userName}")
    private String userName;
    /**
     * 性别
     */
    @Value("${user.gender}")
    private String gender;

    /**
     * 爱好
     */
    private String[] hobbies;
}

7.3、@Value 与 @ConfigurationProperties 对比

7.3.1、 使用位置不同

  • @ConfigurationProperties:标注在 JavaBean 的类名上;
  • @Value:标注在 JavaBean 的属性上。

7.3.2、功能不同

  • @ConfigurationProperties:用于批量绑定配置文件中的配置;
  • @Value:只能一个一个的指定需要绑定的配置。

7.3.3、松散绑定支持不同@ConfigurationProperties:支持松散绑定(松散语法),例如实体类 Person 中有一个属性为 firstName,那么配置文件中的属性名支持以下写法:

  • person.firstName
  • person.first-name
  • person.first_name
  • PERSON_FIRST_NAME
    @Vaule:不支持松散绑定。

7.3.4、 SpEL 支持不同

  • @ConfigurationProperties:不支持 SpEL 表达式;
  • @Value:支持 SpEL 表达式。

7.3.5、复杂类型封装

  • @ConfigurationProperties:支持所有类型数据的封装,例如 Map、List、Set、以及对象等;
  • @Value:只支持基本数据类型的封装,例如字符串、布尔值、整数等类型。

7.3.6、应用场景不同

@Value 和 @ConfigurationProperties 两个注解之间,并没有明显的优劣之分,它们只是适合的应用场景不同而已。

  • 若只是获取配置文件中的某项值,则推荐使用 @Value 注解;
  • 若专门编写了一个 JavaBean 来和配置文件进行映射,则建议使用 @ConfigurationProperties 注解。

7.4、非application配置文件

@PropertySource(value =“classpath:userinfo.properties”)
定义配置文件

user.userName=Tiger
user.gender=男
user.hobbies=run,badminton,mountainclimb

往期热门专栏回顾

专栏 描述
Java项目实战 介绍Java组件安装、使用;手写框架等
Aws服务器实战 Aws Linux服务器上操作nginx、git、JDK、Vue
Java微服务实战 Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
Java基础篇 Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
Springboot篇 从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
Spring MVC篇 从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
华为云服务器实战 华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
Java爬虫 通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
Vue实战 讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
Spring 讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等

资料获取,更多粉丝福利,关注下方公众号获取

芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息,芋道 Spring Boot,spring boot,后端,java文章来源地址https://www.toymoban.com/news/detail-856418.html

到了这里,关于芋道SpringBoot配置Maven、创建SpringBoot项目、创建Web接口、读取配置信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • eclipse创建一个基于maven的web项目

    web程序运行,需要tomcat环境。提前安装好tomcat 点击 windows -preference ,在弹出窗口的左侧选中 server - Runtime enviroment 。 点击Add ,根据安装的tomcat版本选择 tomcat的类型后,点击finish 按钮      3.配置tomcat server 点击链接创建tomcat服务器     将web程序添加到右侧列表      1)点击

    2024年02月03日
    浏览(36)
  • Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

    Web服务器: Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。 主要功能是“提供网上信息浏览服务”。 Tomcat: Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JS

    2024年02月15日
    浏览(36)
  • 2.Eclipse里面配置Maven及创建Maven项目

    eclipse4.0以上已经安装了Maven插件,无需额外再次安装Maven插件。除非你的Eclipse版本很低,就需要手动安装。那么怎么看我们的 Eclipse里面有没有安装 Maven插件呢?打开如下菜单:Window---Preference,如果里面有 Maven选项的话就表示已经安装了 Maven插件; Maven 配置好之后我们还要配

    2024年02月21日
    浏览(29)
  • 创建maven的Springboot项目出现错误:Cannot access alimaven

    创建maven的Springboot项目出现错误:Cannot access alimaven 1)问题 2) 分析问题 3)解决问题 创建maven的Springboot项目出现错误: 2) 分析问题 这个错误提示表明你的Maven配置为离线模式,并且无法访问阿里云的Maven仓库。通常情况下,Maven会在项目构建过程中从远程仓库下载所需的依赖

    2024年02月12日
    浏览(30)
  • Springboot读取外部配置文件,项目部署时配置读取不到问题

    需求: 最近项目部署,但是每个地方都有个别地方配置的差异,我们每次打包后再进行修改极度不方便,这里将有关的配置都抽取出来,放在jar包外进行配置,这样以后更新时只需要将jar包更换然后重启即可,配置读取外部的固定配置文件。 SpringBoot 配置 springboot默认配置的

    2024年02月07日
    浏览(36)
  • Maven下载及安装,集成eclipse中,配置环境变量,创建maven项目等

    解压 配置: 本地仓库的位置: 阿里云仓库位置: 配置Maven的jdk版本;我用的是jdk1.8版本 检测是否安装好: Finish后就好了。

    2024年01月23日
    浏览(40)
  • Spring Boot多模块项目的创建和配置(Maven工程多模块)

    在进行分布式系统开发时,我们通常会创建多个模块的工程项目。即每一个功能就是一个Spring Boot工程,作为一个个模块,然后这些模块都会有一个父模块,父模块通常没有代码只有一个 pom.xml 。 今天就来分享一下Spring Boot如何创建一个多模块项目,以创建一个两个子模块的

    2024年02月12日
    浏览(28)
  • 解决IDEA中每次创建或拉取项目都要重复配置maven问题

    工作中,每次新建项目或者从git拉取新项目,每次都需要重新配置下maven配置,要是平时不太频繁还好,但是最近几年项目都是搞敏捷开发,基本上三个月就要,换个新项目,而且有时候,自己想学习,想从gitee或者github上拉些开源代码做研究。导致自己配置maven的次数太频繁

    2024年02月10日
    浏览(51)
  • 【业务功能篇80】Springboot项目 maven配置仓库&镜像settings文件分析

    项目中我们需要依赖许多包,那么就涉及到maven配置文件,我们需要配置settings.xml文件,这里面会配置我们的本地仓库localRepository ,远程仓库:仓库会有我们的依赖仓库repository和插件依赖仓库pluginRepository, mirror镜像仓库 依赖路径:工程优先去本地仓库找依赖—》 没找到就

    2024年02月11日
    浏览(29)
  • Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

    一、Tomcat的介绍和安装配置 安装tomcat:                                      环境变量的配置: 配置之后重启cmd,执行startup命令,启动tomcat 在localhost:8080,能进入tomcat主界面,说明配置成功 二、eclipse中动态web项目的创建和运行 tomcat可以在面板上配,可以去windows中pr

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包