0


将Spring Boot项目部署到云服务器并与微信小程序交互,在微信小程序端获取数据并显示【详细篇】

工具:IntelliJ IDEA ,Maven(要配好环境变量),腾讯云服务器(CentOS),MySQL

目录

准备:在idea配置好Maven
在这里插入图片描述

一.新建Spring Boot项目

1.打开IDEA新建项目 New Project 选择Spring initalizr快速创建一个spring boot项目

在这里插入图片描述

2.点击Next,除了标红的,其它都不用修改
在这里插入图片描述

3.选择打勾依赖
在这里插入图片描述
在这里插入图片描述

4.点击Next,再点击Finish完成创建

二.配置Druid依赖

1.在pom.xml文件中添加Druid依赖(Druid是阿里巴巴开源的一个数据源,主要用于java数据库连接池)
在这里插入图片描述

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. <version>1.1.18</version>
  5. </dependency>

2.在src/main/resources文件夹下新建application.yml文件,并且添加数据源信息

其中username,password,url要改成自己的(Mysql数据库的用户名,密码,地址)
在这里插入图片描述
在这里插入图片描述

  1. spring:
  2. datasource:
  3. # 数据源基本配置
  4. username: 自己MySQL的用户名
  5. password: 自己Mysql的密码
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. url: jdbc:mysql://自己服务器的地址:3306/mybatis
  8. type: com.alibaba.druid.pool.DruidDataSource
  9. # 数据源其他配置
  10. initialSize:5
  11. minIdle:5
  12. maxActive:20
  13. maxWait:60000
  14. timeBetweenEvictionRunsMillis:60000
  15. minEvictableIdleTimeMillis:300000
  16. validationQuery: SELECT 1 FROM DUAL
  17. testWhileIdle:true
  18. testOnBorrow:false
  19. testOnReturn:false
  20. poolPreparedStatements:true
  21. # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
  22. #filters: stat,wall,log4j
  23. maxPoolPreparedStatementPerConnectionSize:20
  24. useGlobalDataSourceStat:true
  25. connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3.编写Druid配置类

在这里插入图片描述

在这里插入图片描述

  1. @Configuration
  2. publicclassDruidConfig{
  3. @ConfigurationProperties(prefix ="spring.datasource")
  4. @Bean
  5. public DataSource druid(){returnnewDruidDataSource();}//配置Druid的监控//1、配置一个管理后台的Servlet
  6. @Bean
  7. public ServletRegistrationBean statViewServlet(){
  8. ServletRegistrationBean bean =newServletRegistrationBean(newStatViewServlet(),"/druid/*");
  9. Map<String, String> initParams =newHashMap<>();
  10. initParams.put("loginUsername","admin");
  11. initParams.put("loginPassword","123456");
  12. initParams.put("allow","");//默认就是允许所有访问
  13. initParams.put("deny","192.168.15.21");
  14. bean.setInitParameters(initParams);return bean;}//2、配置一个web监控的filter
  15. @Bean
  16. public FilterRegistrationBean webStatFilter(){
  17. FilterRegistrationBean bean =newFilterRegistrationBean();
  18. bean.setFilter(newWebStatFilter());
  19. Map<String, String> initParams =newHashMap<>();
  20. initParams.put("exclusions","*.js,*.css,/druid/*");
  21. bean.setInitParameters(initParams);
  22. bean.setUrlPatterns(Arrays.asList("/*"));return bean;}}

4.测试Druid是否可用

  1. 运行程序

在这里插入图片描述

  1. 在浏览器输入localhost:8080/druid
  2. 输入配置类DruidConfig里面的账号密码 admin 123456

在这里插入图片描述
在这里插入图片描述
druid可以正常访问

三.使用Mybatis配置文件版编写程序

1.在com.yl.mybatis包下新建三个类

第一个类Employee(实体类)
在这里插入图片描述

public class Employee {
private Integer id;
private String lastName;
private Integer gender;
private String email;
private Integer dId;

  1. public void setId(Integer id) {
  2. this.id = id;
  3. }
  4. public void setLastName(String lastName) {
  5. this.lastName = lastName;
  6. }
  7. public void setGender(Integer gender) {
  8. this.gender = gender;
  9. }
  10. public void setEmail(String email) {
  11. this.email = email;
  12. }
  13. public void setdId(Integer dId) {
  14. this.dId = dId;
  15. }
  16. public Integer getId() {
  17. return id;
  18. }
  19. public String getLastName() {
  20. return lastName;
  21. }
  22. public Integer getGender() {
  23. return gender;
  24. }
  25. public String getEmail() {
  26. return email;
  27. }
  28. public Integer getdId() {
  29. return dId;
  30. }

第二个类 EmployeeMapper

在这里插入图片描述

public interface EmployeeMapper {

  1. public Employee getEmpById(Integer id);
  2. public void insertEmp(Employee employee);

}

第三个类DeptController

在这里插入图片描述

  1. @RestController
  2. publicclassDeptController{
  3. @Autowired
  4. EmployeeMapper employeeMapper;
  5. @GetMapping("/emp/{id}")public Employee getEmp(@PathVariable("id") Integer id){return employeeMapper.getEmpById(id);}}

2.在resource文件夹下新建mybatis文件夹,在mybatis文件夹下新建mapper文件夹
在这里插入图片描述

3.在mybatis文件夹下新建mybatis-config.xml文件
在这里插入图片描述

  1. <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration
  2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration></configuration>

3.在mapper文件夹下新建EmployeeMapper.xml
在这里插入图片描述

  1. <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.yl.mybatis.mapper.EmployeeMapper"><selectid="getEmpById"resultType="com.yl.mybatis.bean.Employee">
  2. SELECT * FROM employee WHERE id=#{id}
  3. </select><insertid="insertEmp">
  4. INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dID})
  5. </insert></mapper>

4.将上述两个配置文件添加到全局配置文件中
在这里插入图片描述

  1. mybatis:
  2. config-location: classpath:mybatis/mybatis-config.xml
  3. mapper-locations: classpath:mybatis/mapper/*.xml

5.在启动类中添加@MapperScan注解

  1. @MapperScan(value ="com.yl.mybatis.mapper")

四.对MySQL数据库的设置

新建一个名字为mybatis的数据库,创建一张名字为employee的表,随意写入一些数据 如下图
在这里插入图片描述

五.在本地进行测试

启动Spring boot项目
在这里插入图片描述

在浏览器输入 localhost:8080/emp/1
在这里插入图片描述

成功返回数据

六.将Spring Boot打成jar包部署到服务器

确保服务器上没有apache,nginx等服务器软件,因为spring boot项目自带了tomcat

1.打jar包

双击maven自带的package插件
在这里插入图片描述

打包成功
在这里插入图片描述

将jar包复制到桌面 重命名为mybatis.jar
在这里插入图片描述
在这里插入图片描述

2.将jar包部署到自己的centos服务器的home文件夹下

确保自己的服务器上有java jdk,推荐安装1.8版本
在这里插入图片描述

执行命令 java -jar mybatis.jar

成功运行jar包
在这里插入图片描述

在浏览器输入 服务器公网ip:8080/emp/1

发现无法运行

在这里插入图片描述

解决方法:将8080端口改成80端口

在项目的application.yml文件中添加如下代码

在这里插入图片描述

  1. server:
  2. port:80

重新将项目打成jar包部署到服务器运行

在浏览器输入 服务器公网ip/emp/1 (由于80端口是默认的,所以不用写端口号)

运行成功

在这里插入图片描述

七.将实战项目部署到服务器

  1. 介绍:在项目开发中,整合Mybatis来操作MySQL
  2. 工具:IntelliJ IDEA Maven(要配好环境变量),腾讯云服务器(CentOS),MySQL,微信开发者工具

1、新建项目

  1. 选择5个依赖
  2. Web->Spring Web
  3. Template Engines->Thymeleaf
  4. SQL->(JDBC API,MyBatis Framework,MySQL Driver)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2、添加配置文件

  1. 第一步:在resources文件夹下新建全局配置文件application.yml

在这里插入图片描述

  1. spring:
  2. datasource:
  3. # 数据源基本配置
  4. username: 写自己MySQL的用户名
  5. password: 写自己MySQL的密码
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. url: jdbc:mysql://写自己MySQL的地址:3306/book
  1. 第二步:在resources文件夹下添加MyBatis配置文件(mybatis-config.xmlBookMapper.xml)

在这里插入图片描述

  1. <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration></configuration><!--这是mybatis-config.xml-->
  1. <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.yl.springboot.mapper.BookMapper"><selectid="getBookByName"resultType="com.yl.springboot.bean.Book">
  2. SELECT * FROM book WHERE bookName LIKE CONCAT('%',#{bookName},'%')
  3. </select></mapper><!--这是BookMapper.xml-->
  1. 第三步:将mybatis的配置文件添加到全局配置文件中,在application.yml文件中添加以下代码
  1. mybatis:config-location: classpath:mybatis/mybatis-config.xml
  2. mapper-locations: classpath:mybatis/mapper/*.xmlserver:port:80

3、编写业务逻辑

  1. 第一步:新建一个实体类Book

在这里插入图片描述

  1. publicclassBook{privateString image;privateString bookName;privateString author;privateString pub;privateString introduction;privateString location;privateString totalNum;privateString unborNum;privateString isbn;privateString pubTime;privateint flag;privateint id;publicintgetId(){return id;}publicvoidsetId(int id){this.id = id;}publicStringgetIsbn(){return isbn;}publicvoidsetIsbn(String isbn){this.isbn = isbn;}publicStringgetPubTime(){return pubTime;}publicvoidsetPubTime(String pubTime){this.pubTime = pubTime;}publicintgetFlag(){return flag;}publicvoidsetFlag(int flag){this.flag = flag;}publicStringgetImage(){return image;}publicvoidsetImage(String image){this.image = image;}publicStringgetBookName(){return bookName;}publicvoidsetBookName(String bookName){this.bookName = bookName;}publicStringgetAuthor(){return author;}publicvoidsetAuthor(String author){this.author = author;}publicStringgetPub(){return pub;}publicvoidsetPub(String pub){this.pub = pub;}publicStringgetIntroduction(){return introduction;}publicvoidsetIntroduction(String introduction){this.introduction = introduction;}publicStringgetLocation(){return location;}publicvoidsetLocation(String location){this.location = location;}publicStringgetTotalNum(){return totalNum;}publicvoidsetTotalNum(String totalNum){this.totalNum = totalNum;}publicStringgetUnborNum(){return unborNum;}publicvoidsetUnborNum(String unborNum){this.unborNum = unborNum;}}
  1. 第二步:新建一个BookMapper

在这里插入图片描述

  1. publicinterfaceBookMapper{publicArrayList<Book>getBookByName(String bookName);}
  1. 第三步:新建一个BookController

在这里插入图片描述

  1. @RestControllerpublicclassBookController{@AutowiredBookMapper bookMapper;@RequestMapping("/query")publicArrayList<Book>getBook(String bookName){return bookMapper.getBookByName(bookName);}}
  1. 第四步:在启动类添加@MapperScan注解

在这里插入图片描述

  1. @MapperScan(value ="com.yl.springboot.mapper")

4、添加静态资源

  1. resources文件夹下的static文件夹下添加图片

在这里插入图片描述
5、MySQL数据库配置

  1. MySQL中新建一个名字为book的数据库,在book数据库中新建一张名字为book的表,
  2. book表中的字段如下

在这里插入图片描述6、在本地测试

  1. 在浏览器中输入 localhost/query?bookName
  2. 运行成功,获得了数据

在这里插入图片描述
7、部署到服务器进行测试

  1. Maven的插件Package将项目打成jar包,部署到服务器

在这里插入图片描述

八.微信小程序端访问服务器获取数据并显示

1、新建微信小程序项目
在这里插入图片描述2、编写业务逻辑和前端

  1. 第一步:在app.json中新建一个页面

在这里插入图片描述

  1. "pages/query/query"
  1. 第二步:改变编译的起始页面(方便测试)

在这里插入图片描述
在这里插入图片描述

  1. 第三步:设置不校验合法域名

在这里插入图片描述

  1. 第四步:编写wxmljs里面的代码

在这里插入图片描述

  1. <view><view ><input placeholder="请输入书名" bindchange="inputChange"/><button type="primary" bindtap="queryBooks">查询</button></view><view class="book-content"><view wx:for="{{bookList}}" wx:key="{{index}}" wx:for-index="i" id="{{i}}" bindtap="goToDetailPage"><view class="book-list"><view class="book-image"><image src="{{item.image}}" mode="aspectFit"></image></view><view class="book-info"><view class="book-info-style"><view>书名:{{item.bookName}}</view><view>作者:{{item.author}}\n</view><view>价格:{{item.isbn}}\n</view><view>出版信息:{{item.introduction}}\n</view><view>可借数量:{{item.unborNum}}\n</view></view></view></view><view class="line"></view></view></view></view>

在这里插入图片描述

  1. data:{
  2. bookList:[],
  3. inputValue:''},
  4. inputChange:function(e){this.setData({
  5. inputValue: e.detail.value
  6. })},
  7. queryBooks:function(e){
  8. wx.request({
  9. url:'http://自己的服务器地址/query',
  10. method:'GET',
  11. header:{'content-type':'application/json'},
  12. data:{
  13. bookName:this.data.inputValue
  14. },
  15. success: res =>{
  16. console.log(res)
  17. console.log(res.data)this.setData({
  18. bookList: res.data
  19. })
  20. console.log(this.data.bookList)},
  21. fail: err =>{
  22. console.log(err)}})},

3、测试

  1. 运行成功

在这里插入图片描述

参考文章链接:
https://blog.csdn.net/m0_37640648/article/details/104380108
https://blog.csdn.net/m0_37640648/article/details/104327941

在这里插入图片描述
SpringBoot项目Jar包形式部署到云服务器遇到的各种坑及解决方式

坑:Maven 项目生成jar运行时提示“没有主清单属性
这里如果没有对maven添加下面的代码,运行jar包会报错:
Maven 项目生成jar运行时提示“没有主清单属性”

解决方法:

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. <version>2.4.2</version>
  7. <executions>
  8. <execution>
  9. <goals>
  10. <goal>repackage</goal>
  11. </goals>
  12. </execution>
  13. </executions>
  14. <configuration>
  15. <mainClass>这里填SpringBoot启动类的相对路径</mainClass>
  16. </configuration>
  17. </plugin>
  18. </plugins>
  19. </build>

如果不明白什么是相对路径就右键你启动类(emmmm,好像是叫相对路径吧)选择这个,然后粘贴。

在这里插入图片描述
然后maven打包一件套功能
在这里插入图片描述
这样打包出来的jar包就木问题了。

将jar包上传到centOS系统

坑:记得开启要用的端口
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
登录后进入到centOS的界面
输入bt default
然后就能得到你的宝塔面板的地址,在浏览器上输入后就进去到宝塔Linux面板登录界面,账号密码都在小黑框里。

进去后点击文件,随便上传
然后在jar包文件的那个目录打开终端
在这里插入图片描述
输入***java -jar *****.jar*** 这个是最基础的,退出终端就会失效

或者nohup java -jar *******.jar > /dev/null 2>&1 &可以不挂断的永久在后台执行记得按完回车输入exit。

然后就OK啦。

如果想挂断,则需要ps -ef | grep *****.jar查看当前jar的运行进程
找到后,杀死进程: kill -9 pid
在这里插入图片描述

记得在宝塔下载MySQL,然后把自己电脑的数据库上传到云服务器的MySQL.

九.源码获取

关注公粽号:小猿搜码

后台发送:csdn小程序

即可免费领取


本文转载自: https://blog.csdn.net/m0_49263811/article/details/140995783
版权归原作者 CHRN晨 所有, 如有侵权,请联系我们删除。

“将Spring Boot项目部署到云服务器并与微信小程序交互,在微信小程序端获取数据并显示【详细篇】”的评论:

还没有评论