前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

SpringBoot实战之—与微信小程序的通信(附源码)

qiguaw 2024-09-21 00:12:33 资源文章 17 ℃ 0 评论

程序结构如下:

数据库表结构如下

/*

Navicat Premium Data Transfer

Source Server : springboot

Source Server Type : MySQL

Source Server Version : 50710

Source Host : localhost

Source Database : springbootdemo

Target Server Type : MySQL

Target Server Version : 50710

File Encoding : utf-8

Date: 05/03/2019 17:40:03 PM

*/

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for `tb_area`

-- ----------------------------

DROP TABLE IF EXISTS `tb_area`;

CREATE TABLE `tb_area` (

`area_id` int(2) NOT NULL AUTO_INCREMENT,

`area_name` varchar(255) DEFAULT NULL,

`priority` int(2) DEFAULT NULL,

`create_time` datetime DEFAULT NULL,

`last_edit_time` datetime DEFAULT NULL,

PRIMARY KEY (`area_id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of `tb_area`

-- ----------------------------

BEGIN;

INSERT INTO `tb_area` VALUES ('1', '南苑', '2', null, null), ('2', '北苑', '1', null, null);

COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

创建SpringBoot工程并在Pom.xml中添加依赖

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.foreknow</groupId>

<artifactId>demo</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>demo</name>

<description>Demo project for Spring Boot</description>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.1.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.2</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<dependency>

<groupId>com.mchange</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.5.2</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

项目的配制资源:

  1. DataSourceConfiguration 数据源的配制

package com.foreknow.config.dao;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import java.beans.PropertyVetoException;

/**

* Created by imac on 2019/3/5.

*/

@Configuration

//mapper的扫描路径

@MapperScan("com.foreknow.dao")

public class DataSourceConfiguration {

@Value("${jdbc.driver}")

private String jdbcDriver;

@Value("${jdbc.url}")

private String jdbcUrl;

@Value("${jdbc.username}")

private String jdbcUsername;

@Value("${jdbc.password}")

private String jdbcPassword;

@Bean(name = "dataSource")

public ComboPooledDataSource createDataSource() throws PropertyVetoException {

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dataSource.setDriverClass(jdbcDriver);

dataSource.setJdbcUrl(jdbcUrl);

dataSource.setUser(jdbcUsername);

dataSource.setPassword(jdbcPassword);

dataSource.setAutoCommitOnClose(false);

return dataSource;

}

}

2.会话工厂的配制SessionFactoryConfiguration

package com.foreknow.config.dao;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
import java.io.IOException;
/**
 * Created by imac on 2019/3/5.
 */
@Configuration
public class SessionFactoryConfiguration {
 @Value("${mybatis_config_file}")
 private String mybatisConfigFilePath;
 @Value("${mapper_path}")
 private String mapperPath;
 @Value("${entity_package}")
 private String entityPackage;
 @Autowired
 private DataSource dataSource;
 @Bean(name="sqlSessionFactory")
 public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException {
 SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
 sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(mybatisConfigFilePath));
 PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
 String packageSearchPath = PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX+mapperPath;
 //SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
 sqlSessionFactoryBean.setMapperLocations(resolver.getResources(packageSearchPath));
 sqlSessionFactoryBean.setDataSource(dataSource);
 sqlSessionFactoryBean.setTypeAliasesPackage(entityPackage);
 return sqlSessionFactoryBean;
 }
}

3.业务层事物的配制TransactionManagementConfiguration

package com.foreknow.config.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;
import javax.sql.DataSource;
/**
 * Created by imac on 2019/3/5.
 */
@Configuration
@EnableTransactionManagement
public class TransactionManagementConfiguration implements TransactionManagementConfigurer {
 @Autowired
 private DataSource dataSource;
 @Override
 public PlatformTransactionManager annotationDrivenTransactionManager() {
 return new DataSourceTransactionManager(dataSource);
 }
}

欢迎工作一到五年的Java工程师朋友们加入Java程序员开发: 721575865

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表