[前端学java01-SpringBoot实战] 环境配置和HelloWorld服务

导航

[react] Hooks

[React 从零实践01-后台] 代码分割
[React 从零实践02-后台] 权限控制
[React 从零实践03-后台] 自定义hooks
[React 从零实践04-后台] docker-compose 部署react+egg+nginx+mysql
[React 从零实践05-后台] Gitlab-CI使用Docker自动化部署

[源码-webpack01-前置知识] AST抽象语法树
[源码-webpack02-前置知识] Tapable
[源码-webpack03] 手写webpack - compiler简单编译流程
[源码] Redux React-Redux01
[源码] axios
[源码] vuex
[源码-vue01] data响应式 和 初始化渲染
[源码-vue02] computed 响应式 - 初始化,访问,更新过程
[源码-vue03] watch 侦听属性 - 初始化和更新
[源码-vue04] Vue.set 和 vm.$set
[源码-vue05] Vue.extend

[源码-vue06] Vue.nextTick 和 vm.$nextTick
[部署01] Nginx
[部署02] Docker 部署vue项目
[部署03] gitlab-CI

[数据结构和算法01] 二分查找和排序

[深入01] 执行上下文
[深入02] 原型链
[深入03] 继承
[深入04] 事件循环
[深入05] 柯里化 偏函数 函数记忆
[深入06] 隐式转换 和 运算符
[深入07] 浏览器缓存机制(http缓存机制)
[深入08] 前端安全
[深入09] 深浅拷贝
[深入10] Debounce Throttle
[深入11] 前端路由
[深入12] 前端模块化
[深入13] 观察者模式 发布订阅模式 双向数据绑定
[深入14] canvas
[深入15] webSocket
[深入16] webpack
[深入17] http 和 https
[深入18] CSS-interview
[深入19] 手写Promise
[深入20] 手写函数
[深入21] 数据结构和算法 - 二分查找和排序
[深入22] js和v8垃圾回收机制
[深入23] JS设计模式 - 代理,策略,单例

[前端学java01-SpringBoot实战] 环境配置和HelloWorld服务
[前端学java02-SpringBoot实战] mybatis + mysql 实现歌曲增删改查

(一) 前置知识

(1) 一些单词

legal 法律
profile 配置文件
paste 粘贴

(2) IDEA如何自动的导入需要的注解?

  • setting -> 搜索 auto import
    image

(3) IDEA如何新建一个文件夹,然后在改文件夹中创建一个class?

image

(二) 环境配置

(1) 安装及教程相关连接

(2) 注意事项

  • JDK8相关
    • java8安装完成后,需要配置 ( 环境变量 ) 和 ( Path )
      • java8-JDK8的环境变量配置
        • 我的电脑 => 高级系统设置 => 高级 => 环境变量 => 系统变量 => 新建 => JAVA_HOME
        • 变量名:JAVA_HOME
        • 变量值:bin文件夹所在的全路径 比如 C:\Program Files\Java\jdk1.8.0_211
      • jva8-JDK8的Path配置
        • 我的电脑 => 高级系统设置 => 高级 => 环境变量 => 系统变量 => path => %JAVA_HOME%\bin
      • 如何测试java8的环境变量安装成功?如何验证path
        • cmd 中输入 java -version 获取到相关信息即安装成功
        • cmd 中输入 echo %JAVA_HOME% 查看环境变量的Path
  • maven相关
    • 配置修改
      • 下载解压后需要配置maven,即修改 D:\javaconfig\apache-maven-3.6.3\conf\setings.xml 文件
      • 具体修改三个地方
        • <localRepository></localRepository>
          • 本地仓库,设置为自己本地的文件夹中,这样本地有jar包时就不用每次去下载
          • maven项目创建好后,需要jar包,先从本地仓库找,没找到再去中央仓库或私服中去下载
        • <mirrors><mirror></mirror></mirrors>
          • 镜像
          • 配置国内镜像,加快下载速度
        • <profiles><profile></profile></profiles>
          • 让maven指定jdk1.8来进行编译
    • maven环境变量设置
      • 变量名:M2_HOME
      • 变量值:bin文件夹所在的全路径 比如 D:\javaconfig\apache-maven-3.6.3
    • maven的Path设置
      • 我的电脑 => 高级系统设置 => 高级 => 环境变量 => 系统变量 => path => %M2_HOME%\bin
    • 验证maven是否配置成功
      • cmd 中输入 mvn -version
      • cmd 中输入 echo %M2_HOME%
  • IDEA上设置maven相关如下图
    image
maven setings.xml
------


<localRepository>D:/javaconfig/m2/repos</localRepository>

<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

<profiles>
  <profile>
    <id>jdk-1.8</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
    </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>
  • java


    image
  • maven


    image

(三) 实现一个hello-world

  • 浏览器发送get请求,服务器响应 'helloworld' 字符串
  • 官方文档

(1) 在 ( pom.xml ) 配置文件中添加 ( parent ) 和 ( dependencies )

  • parent:作用是做依赖管理,父项目中声明了常用的依赖的版本号,子项目继承后就不需要写 ( 依赖的版本号 ) 了
  • 如何修改依赖指定的版本号
    • 1.查看parent => spring-boot-starter-parent => spring-boot-dependencies 中的当前依赖的版本号的 key
    • 2.在当前项目中重写配置,需要添加<properties>然后通过<mysql.version>来修改 指定的版本号
    • 3.因为maven采用的是就近优先的原则
  • starter场景启动器
    • starter 就是 场景启动器
    • 只要引入starter,这个场景的所有常规需要的依赖都会自动引入
    • 官方starter spring-boot-starter-*
    • 第三方starter *-spring-boot-starter
    • 官方的starter文档
<parent> 
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.2</version>
</parent>
// parent
// 1 
// parent是父项目,固定写法
// parent的作用是:做依赖管理,父项目中声明几乎所有常用的依赖的版本号,子项目继承后就不需要写 ( 依赖的版本号 ) 了
// 2
// 问题:如果对parent仲裁的版本不满意,如果制定依赖的版本号?
// 答案:自己声明一个<properties>然后通过<mysql.version>来修改指定的版本号
// <properties><mysql.version>5.1.3</mysql.version></properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId> // spring-boot-starter-web
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>2.4.2</version>
    </dependency>
</dependencies>

(2) 就是编写 HelloController 类

  • @getMapping 和 @requestMapping 的区别?
    • @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
    • @RequestMapping可以指定GET、POST请求方式
    • @GetMapping等价于@RequestMapping的GET请求方式
@RestController // 是上面两个注解的合集
public class HelloController {

    // @RequestMapping("/hello") 隐射请求
    @RequestMapping(path="/hello", method = {RequestMethod.GET})
    public String getHello() {
        return "hello request success";
    }
    
}

(3) 编译测试,点击 main 方法的run按钮进行编译

  • 编译成功会看到服务端口等信息
  • 可以通过浏览器访问测试 http://localhost:8080/hello
    image

(四) SpringBoot配置文件 application.properties

  • 配置文件 application.properties
    • main 文件夹下创建 resources 文件夹,再在resources下创建 application.properties 文件
    • application.propertiesapplication.yml 都可以
  • 修改端口
    • server.port = 8888
  • 官方文档 - 配置文件 - application.properties
application.properties文件
-------

server.port = 8888

(五) 打包部署 fat jars

  • 1.在 pom.xml 中添加 build
  • 2.点击IDEA右边的 Maven => hello-world => LifeCycle => clean and package => run
  • 3.打包完成后,鼠标右键,open in explorer 在资源管理器中打开
  • 4.在cmd中执行 java -jar hello-world-1.0-SNAPSHOT.jar
maven插件
-------

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

image

image

(六) 自动配置

  • SpringBoot自动配好了 SpringMVC 依赖
  • SpringBoot自动配好了 Tomcat 依赖
  • SpringBoot自动配好了 web常见的功能,比如字符编码等
  • 按需加载所有自动配置项
    • 引入了哪些场景,这些场景的自动配置才会开启
    • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里
  • 默认的包结构
    • ( 主程序所在的包 ) 及其下面的 ( 所有子包 ) 里的组件都会被默认 ( 扫描进来 )
  • 那如果就要放在主程序所在包的外面,怎么办? - 即改变扫描路径
    • 在主程序的注解上加上@SpringBootApplication(scanBasePackages = "java.com") 参数路径
      image

      image



2021/05/04更新

mac上java的相关设置

(一) jdk8 相关设置

(1) 下载 jdk8

  • 下载地址
  • 选择 - Java SE Development Kit 8u291 - macOS x64


    image.png

(2) 查看和设置 JAVA_HOME

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

查看和设置 JAVA_HOME 

(1) 在cmd中输入一下命令
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

(2) 验证 JAVA_HOME 是否设置成功
echo $JAVA_HOME

(3) 查看 java 版本
java -version

(4) 相关教程
https://www.cnblogs.com/godtrue/p/12479919.html
image.png

image.png

(二) maven 相关设置

(1) 下载 Maven3.3+

  • 下载地址
  • 选择 download - Binary tar.gz archive - apache-maven-3.8.1-bin.tar.gz
image.png
image.png

(2) 配置 Maven3.3+

配置  Maven3.3+ 


(1) 修改maven配置文件 settings.xml
- 文件路径: /Users/admin/back_end/java/apache-maven-3.8.1/conf/settings.xml 
- 具体修改三个地方
  - 1
    <localRepository></localRepository>
    本地仓库,设置为自己本地的文件夹,这样本地有jar包时就不用每次去下载
    maven项目创建好后,需要jar包,先从本地仓库找,没找到再去中央仓库或私服中去下载
  - 2
    <mirrors><mirror></mirror></mirrors>
    镜像
    配置国内镜像,加快下载速度
  - 3
    <profiles><profile></profile></profiles>
    让maven指定jdk1.8来进行编译
- 具体内容如下
<localRepository>
    /Users/admin/back_end/java/javaconfig/m2/repos
</localRepository>
<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>
<profiles>
  <profile>
    <id>jdk-1.8</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
    </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>



(2) 设置maven相关的环境变量
- 1. cmd中输入 vim ~/.bash_profile ,输入 i 进入编辑模式
- 2. 添加如下配置
export MAVEN_HOME=/Users/admin/back_end/java/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin
- 3. 输入 :wq 退出并保存当前文件
- 4. 输入命令:source .bash_profile
- 5. mvn -v



(3) idea上的maven设置
- 需要设置
- Maven home path ------- 是maven下载解压后的文件路径
  - /Users/admin/back_end/java/apache-maven-3.8.1
- user setting file ----- 是maven的配置文件路径,需要修改 localRepository,mirror,profile 等
  - /Users/admin/back_end/java/apache-maven-3.8.1/conf/settings.xml
- Local repository ------ 是本地仓库文件夹路径,将jar包存在本地
  - /Users/admin/back_end/java/javaconfig/m2/repos
image.png

image.png

image.png

(3) 新建一个maven项目

    1. file - new - project
    1. project sdk 一定要选择1.8
    1. next
    1. 输入name 和 location 后点击 finish
    1. 点击 src/main/java 然后会弹出一个对话框
    1. 注意不建议直接这样新建maven项目,而是通过插件 Spring Assistant 来新建
      image.png

      image.png

项目源码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容