初学总结SpringBoot项目在mac上环境搭建和运行

mac一定要安装上homebrew,这个玩意在mac上搭建环境贼拉好用,打开终端安装国内镜像的

复制代码
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

1. brew安装maven

复制代码
brew install maven

2.修改maven国内镜像

mac上homebrew安装路径一般 macintosh hd,里面的隐藏文件opt中,使用 cmd+shift+. 快捷键显示出隐藏文件,找到路径

/opt/homebrew/cellar/maven/3.9.9/libexec/conf/setting.xml,使用记事本打开,在 标签下添加镜像设置,并保存

复制代码
<mirror>
	<id>aliyun</id>
	<mirrorOf>*</mirrorOf>
	<url>https://maven.aliyun.com/repository/public</url>
</mirror>

3.brew安装mysql brew安装的mysql本地配置默认用户名是root,且没有密码,这很重要,通过brew info mysql查看

c 复制代码
brew install mysql

4.启动mysql

c 复制代码
mysql.service start
mysql -u root -p
//一般无密码,无需输入直接回车,mysql就启动了

下图就是sql本地服务启动成功:

5.vscode创建springboot项目, 安装必须的vscode插件

chinese language pack for visual... 汉化插件根据个人需求安装

extension for java (microsoft)

maven for java (microsoft)

project manager for java (microsoft)

spring boot dashboard (microsoft)

spring initializr java support (microsoft)

spring boot tools (vmware)

spring boot extension pack (vmware)

mysql (weijian chen)

xml(red hat)

6.创建springboot项目

输入框输入 >spring 选择spring initializr

选择springboot版本 第一个即可 3.4.2

选择语言 java/kotlin

输入包名 com.example.demo

输入项目名,也是打包输出的默认名字 demo

打包输出选择 jar

jdk版本选择 18,没有的随便选一个,后面再改,

选择依赖:先选个spring boot devtool, lombok, 或者不选,项目编译好后再加

选择保存位置

vscode弹出提示框点击 open 打开项目,

构建失败不要紧,配置一下:

pom.xm

java 复制代码
<properties>
		<java.version>1.8</java.version>
		<mybatisplus-spring-boot-starter.version>1.0.5</mybatisplus-spring-boot-starter.version>
        <mybatisplus.version>2.3.1</mybatisplus.version>
        <poi.version>3.9</poi.version>
</properties>

<repositories>
	<repository>
		<id>aliyun</id>
			<url>https://maven.aliyun.com/repository/public</url>
		</repository>
        <repository>
            <id>central</id>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
	</repositories>

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

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- 添加Servlet依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
            <scope>provided</scope>
        </dependency>

        <!-- 添加JSTL标签库依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
			<version>1.2</version>
        </dependency>

		 <!-- 使用JSP引擎,SpringBoot内置Tomcat没有此依赖 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
			<version>8.0.26</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.13</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>

		 <!-- swagger2生成api文档 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

		 <!-- mybatis-plus begin -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatisplus-spring-boot-starter</artifactId>
            <version>${mybatisplus-spring-boot-starter.version}</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>${mybatisplus.version}</version>
        </dependency>
        <!-- mybatis-plus end -->

		 <!-- commons -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- log4j -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.10.0</version>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>

        <!-- 支付宝支付 -->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.33.10.ALL</version>
        </dependency>
        <!-- 微信支付 -->
        <dependency>
            <groupId>com.github.wechatpay-apiv3</groupId>
            <artifactId>wechatpay-apache-httpclient</artifactId>
            <version>0.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-pay</artifactId>
            <version>4.3.8.B</version>
        </dependency>

		 <!-- hutool -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.5</version>
        </dependency>

        <!-- Redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!-- poi office -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${poi.version}</version>
        </dependency>
	</dependencies>

保存后自动构建好,可以写项目代码

7.创建数据库表

将 src/mian/resources目录下的aoolication.properties改为application.yml, yml文件配置结构更清晰用得最多,配置数据库,我本地数据库是没有密码的,根据个人mysql配置区别看,数据库默认端口3306,不要尝试去修改,没那个必要本,server的端口号自己定,不要用8080,容易被占用

java 复制代码
spring:
  application:
    name: demo
  datasource:
    url: jdbc:mysql://localhost:3306/my_database
    username: root
    password:
    driver-class-name: com.mysql.cj.jdbc.Driver

  devtools:
    restart:
      enabled: true
      additional-paths: src/main/java, src/main/resources, src/main/resources/static, src/main/resources/static/webapp

server:
  port: 8083

vscode下载好mysql插件后,在工具栏点击插件,点击+号创建数据库连接,顶部名称 分组自定义,端口默认本地localhost的ip 127.0.0.1,端口号设置为applicaiton.yml中datasource标签下的地址端口,用户名是datasource下username,password也是相同,可为空,连接之前确保第4步中的mysql已经正确启动,切用户名和密码都是对应的,然后点击连接插件界面就会提示连接成功

提示连接成功后,点击左侧+号创建自己的数据库,语法已经备好,直接输入名字即可,然后点击run灰色按键,提示绿色则是创建成功,创建完成后会在左侧连接下显示自己刚刚创建的数据库

点击数据库下面的tables 右侧的+号,添加数据库表,同样语法已经准备好,输入自己定义的字段名,类型,点击run按钮,运行通过,则会在数据库下显示自己创建的表,可以直接在create那个页面直接写 insert语句,添加需要的内容

插入数据后,点击创建的表名,右侧即可预览表的内容,可以在属性 数据状态栏的下面哪里直接执行sql语句,点击输入框下面的三角形运行按钮,即可筛选表中的数据,点击+号增加内容,或者直接insert语句增加内容。

也可以在属性中修改表中字段的属性

点击啊编辑按钮则可修改字段属性

至此,整个环境搭建完毕,可以着手写control server mapper data来对外提供api接口了,

域名localhost,

端口则是application.yml中server:port:8083配置的端口,

域名是在 server:servlet:context-path: /demo 中配置,可以不设置

再后面则是在control中 requestmapping("/api/account")中的路径

最后则是方法getmapping("/login") 定义的方法名:

浏览器输入 localhost:8083/demo/api/account/login,即可获取control中返回的内容了

相关推荐
GreenTea9 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
我是大猴子11 小时前
Spring代理类为何依赖注入失效?
java·后端·spring
码事漫谈11 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
码农BookSea12 小时前
ReAct:让大模型学会边想边做
后端·ai编程
码农BookSea12 小时前
10分钟掌握 JSON-RPC 协议,面试加分、设计不踩坑
后端
计算机毕设vx_bysj686912 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
凤年徐12 小时前
C++手撕红黑树:从0到200行,拿下STL map底层核心
c++·后端·算法
IT_陈寒13 小时前
Python的列表推导式里藏了个坑,差点让我加班到凌晨
前端·人工智能·后端
吴声子夜歌13 小时前
ES6——正则的扩展详解
前端·mysql·es6
xixingzhe213 小时前
Mysql统计空间增量
数据库·mysql