springboot+mybatis-plus+mysql项目完整搭建(十分详尽!)
网上有很多关于SpringBoot的教程和博文,但是有的确实不够详细,因为业务场景不同,所以所需的工程结构也不同,最近开始参与一些Java的项目开发,涉及的都是比较常用和基础的,在此我把详细搭建项目的过程记录下来,包括热部署配置,application.yml配置文件,依赖项及entity层,mapper层,controller层,service层的代码编写等过程,以备后续查看。
springboot 接口项目完整搭建
网上有很多关于SpringBoot的教程和博文,但是有的确实不够详细,因为业务场景不同,所以所需的工程结构也不同,最近开始参与一些Java的项目开发,涉及的都是比较常用和基础的,在此我把详细搭建项目的过程记录下来,包括热部署配置,application.yml配置文件,依赖项及entity层,mapper层,controller层,service层的代码编写等过程,以备后续查看。
文章目录
1. IDEA安装SpringAssistant插件
如果IDEA是社区版,就要先安装一个叫SpringAssistant插件,用它来创建Spring项目比较省事,当然也可以不装它,用其他方式创建SpringBoot项目。安装的方法很简单,就是先搜索出来,点安装,安装之后需要重启IDEA。
2. 创建SpringBoot项目
2.1 新建项目
点击新建Project后,用SpringAssistant插件创建SpringBoot项目,如图
注意新建项目时,必须要连接互联网。之后输入一写必备的项目名称等信息,就创建完成了。
2.2 配置热部署及端口
- 在域名统计目录下创建包目录controller,entity,service,config,分别用于放置控制器,实体,服务,配置等类文件。
- 将原来生成的配置文件更名为 application.yml,打开后配置服务启动的端口号,配置热部署
pom.xml 增加热部署依赖包
<!--devtools热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
- IDEA配置热部署
- “File”->“Settings”->“Build,Execution,Deplyment”->“Compiler”
选中打勾"Build project automatically" - 组合键:“Shift+Ctrl+Alt+/”“选择"Registry”,
选中打勾"compiler.automake.allow.when.app.running"
server:
port: 8088
spring:
devtools:
restart:
enabled: true #设置开启热部署
additional-paths: src/main/java #重启目录
exclude: WEB-INF/**
freemarker:
cache: false #页面不加载缓存,修改即时生效
- 编写接口运行项目
在controller下创建第一个控制器HomeController
@Controller
@RequestMapping("/test")
public class HomeController {
@RequestMapping("/hello.json")
public @ResponseBody String Hello(){
return "Hello World!";
}
}
编译后运行,在浏览器里输入:http://127.0.0.1:8088/test/hello.json
页面显示 Hello World! 后则证明 spingboot项目创建成功!
- 测试
修改类–>保存:应用会重启
修改配置文件–>保存:应用会重启
修改页面–>保存:应用不会重启,但会重新加载,页面会刷新
3. 配置Mysql及mybatis-plus
首先也是配置安装依赖项,这里采用druid数据源类库包。
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
然后再在配置文件application.yml中配置数据源及mybatis-plus的相关配置
datasource:
name: sp
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xxxx.xxxx:3906/mylearnlab?characterEncoding=utf8&useSSL=false
username: xxx
password: xxxxxxxx
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
# 配置打印sql语句
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
最后还要在程序入口main方法上添加注解
@SpringBootApplication(scanBasePackages = {"cn.zhousonglin"})
@MapperScan("cn.zhousonglin")
public class MyspringlearnApplication {
public static void main(String[] args) {
SpringApplication.run(MyspringlearnApplication.class, args);
}
}
4. 编写service及mapper层
在域名主目录下新建mapper包和service包目录,在service目录下在新建impl包目录,具体的工程目录结构最后实现如下:
4.1 项目工程结构
4.2 entity实体层代码
@Data
@TableName(value = "tb_user")
public class TbUser {
@TableId("id")
private int id;
@TableField("name")
private String name;
@TableField("age")
private int age;
@TableField("roleId")
private int roleId;
@TableField(exist = false)
private String role;
}
4.3 mapper 层代码
public interface TbUserMapper extends BaseMapper<TbUser> {
}
4.4 service 接口层代码
public interface IUserService {
List<TbUser> GetAllUsers();
}
4.5 service的实现层impl代码
@Service
public class UserService implements IUserService {
@Autowired
private TbUserMapper userMapper;
@Override
public List<TbUser> GetAllUsers() {
List<TbUser> userList = userMapper.selectList(null);
return userList;
}
}
5. 编写controller层及运行
@Controller
@RequestMapping("/test")
public class HomeController {
@Autowired
private IUserService userService;
@RequestMapping("/getAllUsers.json")
public @ResponseBody Object GetAllUsers(){
return userService.GetAllUsers();
}
}
输入http://127.0.0.1:8080/test/getAllUsers.json 执行运行结果
顺便可以看看sql打印的日志
6. 简单打包部署
- 首先要先配置pox.xml中Maven插件的入口类名称
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.zhousonglin.mylearnlab.MyspringlearnApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
- 其次在Main方法中增加构建代码
@SpringBootApplication(scanBasePackages = {"cn.zhousonglin"})
@MapperScan("cn.zhousonglin")
public class MyspringlearnApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyspringlearnApplication.class, args);
}
@Override //为了打包springboot项目
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
- 之后就是执行Maven命令,先Clean,再Install,最后再target目录下面找到已经打好的包。
- 部署也很简单,将打好的包上传到服务器中,执行运行命令即可完成部署。
nohup java -jar myspringlearn-0.0.1-SNAPSHOT.jar &
到这里搭建就基本完成,后续添加其他的应用时,再持续更新!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)