初学总结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中返回的内容了

相关推荐
华仔啊14 小时前
MyBatis-Plus 不只是简化CRUD!资深架构师总结的15个高阶用法
java·后端·mybatis
吴名氏.14 小时前
电子书《ASP.NET MVC企业级实战》
后端·asp.net·mvc·编程语言
IT_陈寒14 小时前
SpringBoot 3.2新特性实战:这5个隐藏技巧让你的应用性能飙升50%
前端·人工智能·后端
修行者Java14 小时前
Maven 全面解析:从概念到实战,包含 POM、BOM 的区别和应用
maven
todoitbo14 小时前
Rust新手第一课:Mac环境搭建踩坑记录
开发语言·macos·rust
chxii15 小时前
第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
数据库·mysql
小奏技术15 小时前
LLM 交互的“省钱”新姿势:JSON 已死,TOON 当立
后端·aigc
用户214118326360215 小时前
mcp-server案例分享-即梦MCP-Server实战教程-让Claude直接调用AI生图视频能力
后端
q***062915 小时前
Spring Boot + Spring AI快速体验
人工智能·spring boot·spring