文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring Boot中Idea如何从零开始初始化后台项目

2023-06-22 04:30

关注

这篇文章主要为大家展示了“Spring Boot中Idea如何从零开始初始化后台项目”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Boot中Idea如何从零开始初始化后台项目”这篇文章吧。

1 创建项目

1.1 填写项目基本信息

打开Idea创建项目,如下图:

Spring Boot中Idea如何从零开始初始化后台项目

Spring Boot中Idea如何从零开始初始化后台项目

Spring Boot中Idea如何从零开始初始化后台项目

1.2 选择项目集成功能

完成基本信息配置,在Web,SQL,NoSQL,Ops选项中,选择对应的模块依赖,最终选择如图以下几项:

设置完成后,点击下一步,Idea开始初始化项目文件。

Spring Boot中Idea如何从零开始初始化后台项目

2 项目基础配置

通过上面步骤,已生成项目结构文件,等待开发环境自动构建好依赖库后可继续后续的工作。

2.1 gradle文件配置

当前项目使用gradle管理项目依赖,默认情况下,使用官方的依赖库,国内访问较慢,可替换为阿里云仓库。在build.gradle文件的repositories节点下添加阿里云仓库访问地址,设置完成后如下

repositories {    //使用阿里云仓库,提高国内依赖库下载速度    maven { url "http://maven.aliyun.com/nexus/content/groups/public" }    mavenCentral()}

另外,添加其它常用依赖库,最终依赖包如下

dependencies {    implementation 'org.springframework.boot:spring-boot-starter-actuator'    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'    implementation 'org.springframework.boot:spring-boot-starter-data-redis'    implementation 'org.springframework.boot:spring-boot-starter-web'    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2'    implementation 'com.alibaba:fastjson:1.2.68'    implementation 'org.apache.commons:commons-lang3:3.10'    //数据库配置的日志类com.mysql.cj.log.Slf4JLogger在这个包中    runtime('mysql:mysql-connector-java')    testImplementation('org.springframework.boot:spring-boot-starter-test') {        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'    }}

2.2 环境文件配置

官方初始化器默认会在resources资源文件夹下生成一个application.properties文件,这里调整一下配置文件结构。在resources资源文件夹下创建config文件夹,移动application.properties文件到config文件夹下,同时在config文件夹下创建application-dev.properties文件和application-prod.properties文件,分别对应开发环境和线上环境的配置,可根据需要增加其它环境配置文件,文件格式为application-环境名称.properties。

最终application.properties文件内容如下

#默认启动dev环境spring.profiles.active=dev#调整web后台服务端口为9080,不设置默认为8080server.port=9080#mybatis配置文件地址mybatis.config-location=classpath:mybatis/mybatis-config.xml#mybatis mapper文件地址mybatis.mapper-locations=classpath:mybatis/mapper    private int status;    private String description;    private Object data;    public HResponse() {    }    public HResponse(int status, String description, Object data) {        this.status = status;        this.description = description;        this.data = data;    }    public static HResponse success() {        return new HResponse(200, "操作成功", null);    }    public static HResponse success(String description) {        return new HResponse(200, description, null);    }    public static HResponse success(Object data) {        return new HResponse(200, "success", data);    }    public static HResponse success(String description, Object data) {        return new HResponse(200, description, data);    }    public static HResponse error(String description) {        return new HResponse(400, description, null);    }    public static HResponse error(String description, Object data) {        return new HResponse(400, description, data);    }    public int getStatus() {        return status;    }    public void setStatus(int status) {        this.status = status;    }    public Object getData() {        return data;    }    public void setData(Object data) {        this.data = data;    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }}

3.1 Redis案例

使用StringRedisTemplate对Redis进行基本操作,这里简单提供查询Redis的key值和设置Redis的key值两个操作,在CommonController中添加代码如下

private final StringRedisTemplate redisTemplate;    private final SqlSession sqlSession;    public CommonController(StringRedisTemplate redisTemplate) {        this.redisTemplate = redisTemplate;    }    @PostMapping("/getRedisValue")    public HResponse getRedisValue(String key) {        this.logger.info("请求获取redis key为:{} 的值", key);        return HResponse.success(new JSONObject().fluentPut("key", key).fluentPut("value", this.redisTemplate.opsForValue().get(key)));    }    @PostMapping("/setRedisValue")    public HResponse getRedisValue(String key, String value) {        if (StringUtils.isBlank(key)) {            return HResponse.error("键 不能为空");        }        if (StringUtils.isBlank(value)) {            return HResponse.error("值 不能为空");        }        this.logger.info("请求设置redis key为:{} 的值为 {}", key, value);        this.redisTemplate.opsForValue().set(key.trim(), value.trim());        return HResponse.success();    }

启动redis的docker容器并运行当前案例,使用Postman发送请求设置和查询redis中对应的key值,请求响应如下图

Spring Boot中Idea如何从零开始初始化后台项目

Spring Boot中Idea如何从零开始初始化后台项目

3.2 MySQL案例

简单介绍两种从MySQL查询数据的案例,JPA方式和MyBatis方式。先启动好MySQL的docker容器,然后创建表h_company并插入一条数据,最终数据表结果如下图:

Spring Boot中Idea如何从零开始初始化后台项目

Spring Boot中Idea如何从零开始初始化后台项目

3.2.1 JPA方式

构造HCompany数据库映射类和对应的数据库表访问接口CompanyRepository,内容如下:

@Entity@Table(name = "h_company")@Where(clause = "id > 0")public class HCompany {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Integer id;    private String name;    private String shortName;    private String address;    private String tel;    private String remark;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getShortName() {        return shortName;    }    public void setShortName(String shortName) {        this.shortName = shortName;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public String getTel() {        return tel;    }    public void setTel(String tel) {        this.tel = tel;    }    public String getRemark() {        return remark;    }    public void setRemark(String remark) {        this.remark = remark;    }}
@Repository@Where(clause = "id > 0")public interface CompanyRepository extends PagingAndSortingRepository<HCompany, Integer>, JpaRepository<HCompany, Integer> {}

在控制器CommonController中添加使用CompanyRepository查询数据库的方法:

@PostMapping("/getAllCompany")    public HResponse getAllCompany() {        return HResponse.success(this.companyRepository.findAll());    }

使用Postman调用查询,响应如下

Spring Boot中Idea如何从零开始初始化后台项目

3.2.2 MyBatis方式

使用SqlSession接口访问数据库,创建company.xmlmapper文件,内容如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="company">    <select id="getAll" resultType="java.util.Map">        select * from h_company    </select></mapper>

控制器CommonController中添加通过MyBatis获取数据的方法,如下

@PostMapping("/getAllCompanyByMybatis")    public HResponse getAllCompanyByMybatis() {        return HResponse.success(this.sqlSession.selectList("company.getAll"));    }

重新启动项目,然后通过Postman访问,响应如下:

Spring Boot中Idea如何从零开始初始化后台项目

3.3 控制器完整代码

完成以上步骤后,控制器CommonController完整内容如下:

@RestController@RequestMapping("/common")public class CommonController {    private Logger logger = LoggerFactory.getLogger(this.getClass());    private final StringRedisTemplate redisTemplate;    private final CompanyRepository companyRepository;    private final SqlSession sqlSession;    public CommonController(StringRedisTemplate redisTemplate, CompanyRepository companyRepository, SqlSession sqlSession) {        this.redisTemplate = redisTemplate;        this.companyRepository = companyRepository;        this.sqlSession = sqlSession;    }    @PostMapping("/getRedisValue")    public HResponse getRedisValue(String key) {        this.logger.info("请求获取redis key为:{} 的值", key);        return HResponse.success(new JSONObject().fluentPut("key", key).fluentPut("value", this.redisTemplate.opsForValue().get(key)));    }    @PostMapping("/setRedisValue")    public HResponse getRedisValue(String key, String value) {        if (StringUtils.isBlank(key)) {            return HResponse.error("键 不能为空");        }        if (StringUtils.isBlank(value)) {            return HResponse.error("值 不能为空");        }        this.logger.info("请求设置redis key为:{} 的值为 {}", key, value);        this.redisTemplate.opsForValue().set(key.trim(), value.trim());        return HResponse.success();    }    @PostMapping("/getAllCompany")    public HResponse getAllCompany() {        return HResponse.success(this.companyRepository.findAll());    }    @PostMapping("/getAllCompanyByMybatis")    public HResponse getAllCompanyByMybatis() {        return HResponse.success(this.sqlSession.selectList("company.getAll"));    }}

4 健康监测

案例启用了完整的项目监测,可通过http://localhost:9080/actuator查看,每个监测项都对应相应的查看链接,如下图。

Spring Boot中Idea如何从零开始初始化后台项目

5 项目结构

完成以上配置及案例后,项目结构如下图:

Spring Boot中Idea如何从零开始初始化后台项目

以上是“Spring Boot中Idea如何从零开始初始化后台项目”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯