工具: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数据库连接池)
在这里插入图片描述

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

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

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

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

3.编写Druid配置类

在这里插入图片描述

在这里插入图片描述

@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid() {
        return new DruidDataSource();
    }
 
    //配置Druid的监控
    //1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String, String> initParams = new HashMap<>();
 
        initParams.put("loginUsername", "admin");
        initParams.put("loginPassword", "123456");
        initParams.put("allow", "");//默认就是允许所有访问
        initParams.put("deny", "192.168.15.21");
 
        bean.setInitParameters(initParams);
        return bean;
 
    }
 
 
    //2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
 
        Map<String, String> initParams = new HashMap<>();
        initParams.put("exclusions", "*.js,*.css,/druid/*");
 
        bean.setInitParameters(initParams);
 
        bean.setUrlPatterns(Arrays.asList("/*"));
 
        return bean;
    }
}

4.测试Druid是否可用

运行程序

在这里插入图片描述

在浏览器输入localhost:8080/druid 

输入配置类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;

public void setId(Integer id) {
    this.id = id;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public void setGender(Integer gender) {
    this.gender = gender;
}

public void setEmail(String email) {
    this.email = email;
}

public void setdId(Integer dId) {
    this.dId = dId;
}

public Integer getId() {
    return id;
}

public String getLastName() {
    return lastName;
}

public Integer getGender() {
    return gender;
}

public String getEmail() {
    return email;
}

public Integer getdId() {
    return dId;
}

第二个类 EmployeeMapper

在这里插入图片描述

public interface EmployeeMapper {

public Employee getEmpById(Integer id);

public void insertEmp(Employee employee);

}

第三个类DeptController

在这里插入图片描述

@RestController
public class DeptController {
    @Autowired
    EmployeeMapper employeeMapper;
 
    @GetMapping("/emp/{id}")
    public Employee getEmp(@PathVariable("id") Integer id){
        return employeeMapper.getEmpById(id);
    }
}

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

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

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

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


<?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="com.yl.mybatis.mapper.EmployeeMapper">
    <select id="getEmpById" resultType="com.yl.mybatis.bean.Employee">
        SELECT * FROM employee WHERE id=#{id}
    </select>
    
    <insert id="insertEmp">
        INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dID})
    </insert>
</mapper>

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

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

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

@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文件中添加如下代码

在这里插入图片描述

server:
  port: 80

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

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

运行成功

在这里插入图片描述

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

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

1、新建项目

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

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

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

在这里插入图片描述

spring:
  datasource:
#   数据源基本配置
    username: 写自己MySQL的用户名
    password: 写自己MySQL的密码
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://写自己MySQL的地址:3306/book

第二步:在resources文件夹下添加MyBatis配置文件(mybatis-config.xml,BookMapper.xml)

在这里插入图片描述

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

</configuration>
        <!--这是mybatis-config.xml-->

<?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="com.yl.springboot.mapper.BookMapper">
    <select id="getBookByName" resultType="com.yl.springboot.bean.Book">
        SELECT * FROM book WHERE bookName LIKE CONCAT('%',#{bookName},'%')
    </select>
</mapper>

<!--这是BookMapper.xml-->

第三步:将mybatis的配置文件添加到全局配置文件中,在application.yml文件中添加以下代码

mybatis:
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml
server:
  port: 80

3、编写业务逻辑

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

在这里插入图片描述

public class Book {
    private String image;
    private String bookName;
    private String author;
    private String pub;
    private String introduction;
    private String location;
    private String totalNum;
    private String unborNum;
    private String isbn;
    private String pubTime;
    private int flag;
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getPubTime() {
        return pubTime;
    }

    public void setPubTime(String pubTime) {
        this.pubTime = pubTime;
    }

    public int getFlag() {
        return flag;
    }

    public void setFlag(int flag) {
        this.flag = flag;
    }


    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getPub() {
        return pub;
    }

    public void setPub(String pub) {
        this.pub = pub;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(String totalNum) {
        this.totalNum = totalNum;
    }

    public String getUnborNum() {
        return unborNum;
    }

    public void setUnborNum(String unborNum) {
        this.unborNum = unborNum;
    }


}

	第二步:新建一个BookMapper

在这里插入图片描述

public interface BookMapper {
    public ArrayList<Book> getBookByName(String bookName);
}

	第三步:新建一个BookController

在这里插入图片描述

@RestController
public class BookController {
    @Autowired
    BookMapper bookMapper;

    @RequestMapping("/query")
    public ArrayList<Book> getBook(String bookName){
        return bookMapper.getBookByName(bookName);
    }
}

	第四步:在启动类添加@MapperScan注解

在这里插入图片描述

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

4、添加静态资源

	在resources文件夹下的static文件夹下添加图片

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

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

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

"pages/query/query"

	第二步:改变编译的起始页面(方便测试)

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

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

在这里插入图片描述

	第四步:编写wxml和js里面的代码

在这里插入图片描述

<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>

在这里插入图片描述

data: {
    bookList: [],
    inputValue: ''
  },
  inputChange: function (e) {
    this.setData({
      inputValue: e.detail.value
    })
  },
  queryBooks: function (e) {
    wx.request({
      url: 'http://自己的服务器地址/query',
      method: 'GET',
      header: {
        'content-type': 'application/json'
      },
      data: {
        bookName: this.data.inputValue
      },
      success: res => {
        console.log(res)
        console.log(res.data)
        this.setData({
          bookList: res.data
        })
        console.log(this.data.bookList)
      },
      fail: err => {
        console.log(err)
      }
    })
  },

3、测试

	运行成功

在这里插入图片描述

参考文章链接:
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运行时提示“没有主清单属性”

解决方法:

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>这里填SpringBoot启动类的相对路径</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </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小程序

即可免费领取

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐