SpringBoot学习之路(一):SpringBoot的开发环境

【说在前面的话】

        作为一个java小白,从自己写下“Hello World !”开始,到现在使用spring框架开始写一点小练习项目,让自己的一开始对java的好奇,变成现在要掌握它的目标。身为一个学生,我现在还是有很多的时间去学到更多的,俗话说:“好记性不如烂笔头”,我虽然做不到,但是“烂键盘”,我还是可以试一试的。这次也是开始了对与springBoot的学习,别的不说,就它可以将我从xml配置文件的苦海中抽出来,我就必须要接触了解它。

【导读】

       从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在 Java EE 开发中真正意义上的标准,但是随着技术的发展,Java EE 使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。相信大家对此深有体会,在写项目的时候,我就需要考虑pom文件的依赖和插件,还有相关的xml文件的配置让我感到头大,还好网上有不少朋友分享了相关配置。但是springboot将这个过程简化了。

【SpringBoot概述】

 1.springboot是什么?

        2012 10 Mike Youngstrom Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:我认为Spring Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考体系结构。在简单的 main()方法引导的 Spring 容器内嵌入和统一这些常用 Web 容器服务的配置。

        这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天 Spring Boot 的版本已经到了 3.2.0SpringBoot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。它集成了大量常用的第三方库配置,Spring Boot 应用中这些第三方库几乎可以是零配置的开箱即用 out of thebox,大部分的 Spring Boot 应用都只需要非常少量的 Java 配置代码,开发者能够更加专注于业务逻辑。

2.我为什么要学习SpringBoot?

         我主要学习就是奔着它的方便去的,那么这个方便是怎样的呢?

  1. 减少开发,测试时间和努力。
  2. 使用 JavaConfig 有助于避免使用 XML。
  3. 避免大量的 Maven 导入和各种版本冲突。
  4. 提供意见发展方法。
  5. 通过提供默认值快速开始开发。
  6. 没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。需要更少的配置因为没有 web.xml 文件。只需添加用 Configuration 注释的类,然后添加用 Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。甚至可以将 Autowired 添加到 bean 方法中,以使Spring 自动装入需要的依赖关系中。
  7. 基于环境的配置使用这些属性,可以将正在使用的环境传递到应用程序:例如命令行参数配置值为-Dspring.profiles.active={enviornment} 。 在 加 载 主 应 用 程 序 属 性 文 件 后 , Spring 将 在(application-{environment}.properties)中加载后续的应用程序属性文件

      除以上之外,还有SpringBoot对于编码、部署还有配置的简化,真实让我爱不释手(偷懒一时爽,一直偷懒一直爽)。

Spring Boot 开发环境

       千里之行,始于足下。想要舒舒服服地使用Spring框架,就要把它的开发环境配置好,这对它好,也对我好。

1. jdk 的配置       

  1. 使用 IDEA 进行开发,在 IDEA 中配置 jdk 的方式很简单,打开 File->Project Structure选择 SDKs。
  2. JDK home path 中选择本地 jdk 的安装目录。
  3. 在 Name 中为 jdk 自定义名字通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 可以通过两步骤添加:
    1. window->preference->java->Instralled JRES 来添加本地 jdk
    2. window-->preference-->java-->Compiler 选择 jre,和 jdk 保持一致。

2.Spring Boot 工程的构建

2.1 IDEA 快速构建

      IDEA 中可以通过 File->New->Project 来快速构建 Spring Boot 工程。选择 Spring Initializr,在 Project SDK 中选择刚刚导入的 jdk,点击 Next,到了项目的配置信息。
      Group:填企业域名,一般采用域名反装的方式定义,例如使用 com.tp
      Artifact:填项目名称,例如工程名 demo,如果项目规模较大这里可能会采用模块名称
      Dependencies:可以添加项目中所需要的依赖信息,根据实际情况来添加,这里只需要选择 Web 即可。

2.2 官方构建

第二种方式可以通过官方构建,步骤如下:
1、访问 http://start.spring.io/或者 http://start.aliyun.com/

2、在页面上输入相应的 Spring Boot 版本、Group Artifact 信息以及项目依赖,然后创建项目。

3、下载解压后,使用 IDEA 导入该 maven 工程:File->New->Model from Existing Source,然后选择解压后的项目文件夹即可。如果是使用 eclipse 可以通过 Import->Existing Maven Projects->Next,然后选择解压后的项目文件夹即可。

2.3 maven 配置

       创建 Spring Boot 项目后需要进行 maven 配置。打开 File->settings,搜索 maven,配置一下本地的 maven 信息。在 Maven home directory 中选择本地 Maven 的安装路径;在 User settings file 中选择本地 Maven 的配置文件所在路径。在配置文件中配置一下国内阿里的镜像,这样在下载 maven 依赖时,速度会变得很快。

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

2.4 编码配置

       同样地新建项目后,一般都需要配置编码,这点非常重要,我就经常会忘掉都会忘记这一步,导致除了很多笑话,所以我现在已经养成了这个习惯。
       IDEA 中仍然是打开 File->settings,搜索 encoding,配置一下本地的编码信息。
       如果是使用 eclipse 有两个地方需要设置一下编码:

  1. window--> perferences-->General-->Workspace,将 Text file encoding 改成 utf-8
  2. window-->perferences-->General-->content types,选中 Text,将 Default encoding 填入 utf-8

这样编码设置完成即可启动项目工程了

3. Spring Boot 项目工程结构

 

Spring Boot 项目总共有三个模块:
  • src/main/java 路径:主要编写业务程序
  • src/main/resources 路径:存放静态文件和配置文件
  • src/test/java 路径:主要编写测试程序
       默认情况下会创建一个启动类 Demo01Application,该类上面有个@SpringBootApplication 注解,该启动类中有个 main 方法,Spring Boot 启动只要运行该 main 方法即可,非常方便。另外 Spring Boot 内部集成了 tomcat
不需要人为手动去配置 tomcat,开发者只需要关注具体的业务逻辑即可。到此为止 Spring Boot 就启动成功了,为了比较清楚的看到效果,可以写一个 Controller 来测试。

       注意后续开发中定义的包必须是主包的子包,例如主包为 com.tp,则以后的包名称为 com.tp.biz 业务、com.tp.dao等。

4.开始测试

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/*
* 复合注解@Controller+@ResponseBody,@Controller 用于声明当前类是一个控制器类,
而且通过自动组件扫描会成为受管 bean。@ResponseBody 用于声明当前类方法的返回值会自动转换为 JSON
格式
* */
@RestController
/*
 * 针对当前类中的所有方法声明名空间。定义@RequestMapping 时如果没有属性名称则默认名称为 value,
 * value 实际上是 path 属性的别名,只有一个属性 value 时,value 可以省略;如果多个属性时则 value 不能省略。
 * 如果不定义 method 请求方法时,则所有的请求方法均可匹配
 * */
@RequestMapping("/start")
public class StartSpringBoot {
    //针对方法进行地址映射,这里的请求 URL 地址为/start/springboot,不是/springboot
    @RequestMapping("/springboot")
    public String startSpringBoot(){
        return "Welcome to Spring Boot,Let's enjoy it!!";
    }

}

       重新运行 main 方法启动项目,在浏览器中输入 localhost:8080/start/springboot,如果看到  Welcome to Spring Boot,Let's enjoy it!!,那么项目启动成功!Spring Boot 就是这么简单方便!

5.配置application文件

       从上面可以看到8080,这个就是我们的默认端口号,如果想要修改,可以在 application.yml 文件中使用 server.port 来人为指定端口:

 application.yml 配置:

server:
   port: 8001

当然 application不可能只干一件事情啊,目前我对它的使用主要就是连接我的数据库。

       在具体的应用开发中可以使用 properties 配置文件或者 yaml 配置文件两种,两种的功能相差无几,但是书写的格式却不同。

让我们来看一下:

 application.yml :

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///db_test?serverTimezone=UTC
    username: root
    password: root

 application.properties:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///db_test?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

在实际中我们要用哪一个就要仁者见仁,智者见智了。

【总结】

       学习在 IDEA 中导入 jdk 以及使用 IDEA 如何配置 maven 和编码,如何快速的创建和启动 Spring Boot 工程。IDEA Spring Boot 的支持非常友好,建议使用 IDEA 进行 Spring Boot 的开发。

posted @ 2023-07-22 16:40  躺平小伙  阅读(77)  评论(0编辑  收藏  举报