From 9f7f796507ef77279f97e3787b7be6179b125091 Mon Sep 17 00:00:00 2001 From: "453530270@qq.com" Date: Thu, 2 May 2024 13:22:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 ++ .../java/io/xtfs/jwebfs/DataSourceConfig.java | 21 ---- .../io/xtfs/jwebfs/configure/DruidConfig.java | 114 ++++++++++++++++++ .../io/xtfs/jwebfs/constant/ChConstant.java | 27 +++++ .../io/xtfs/jwebfs/mapper/WbFileMapper.java | 41 +++++++ .../resources/mapper/webfs/WbFileMapper.xml | 78 ++++++++++++ .../xtfs/jwebfs/mapper/WbFileMapperTest.java | 38 ++++++ 7 files changed, 310 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/io/xtfs/jwebfs/DataSourceConfig.java create mode 100644 src/main/java/io/xtfs/jwebfs/configure/DruidConfig.java create mode 100644 src/main/java/io/xtfs/jwebfs/constant/ChConstant.java create mode 100644 src/main/java/io/xtfs/jwebfs/mapper/WbFileMapper.java create mode 100644 src/main/resources/mapper/webfs/WbFileMapper.xml create mode 100644 src/test/java/io/xtfs/jwebfs/mapper/WbFileMapperTest.java diff --git a/pom.xml b/pom.xml index 38dbd4a..b78054a 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,12 @@ fastjson 2.0.7 + + + com.alibaba + druid + 1.2.8 + com.zaxxer HikariCP @@ -65,6 +71,12 @@ org.apache.commons commons-lang3 + + + junit + junit + test + diff --git a/src/main/java/io/xtfs/jwebfs/DataSourceConfig.java b/src/main/java/io/xtfs/jwebfs/DataSourceConfig.java deleted file mode 100644 index f73eae1..0000000 --- a/src/main/java/io/xtfs/jwebfs/DataSourceConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.xtfs.jwebfs; - -import com.zaxxer.hikari.HikariDataSource; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; - -import javax.sql.DataSource; - -@Configuration -public class DataSourceConfig { - @Bean - public DataSource dataSource(Environment env){ - HikariDataSource ds = new HikariDataSource(); - ds.setJdbcUrl(env.getProperty("spring.datasource.url")); - ds.setUsername(env.getProperty("spring.datasource.username")); - ds.setPassword(env.getProperty("spring.datasource.password")); - ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); - return ds; - } -} diff --git a/src/main/java/io/xtfs/jwebfs/configure/DruidConfig.java b/src/main/java/io/xtfs/jwebfs/configure/DruidConfig.java new file mode 100644 index 0000000..bb2368c --- /dev/null +++ b/src/main/java/io/xtfs/jwebfs/configure/DruidConfig.java @@ -0,0 +1,114 @@ +package io.xtfs.jwebfs.configure; + + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import io.xtfs.jwebfs.constant.ChConstant; + +import javax.servlet.Filter; +import javax.servlet.Servlet; +import javax.sql.DataSource; +import java.io.FileReader; +import java.util.Properties; + + +/** + * druid 数据库链接配置 + * 涉及多数据源,此处需要明确指定扫描包的位置 + */ +@Configuration +@MapperScan(basePackages = {"io.xtfs.jwebfs.mapper"},sqlSessionFactoryRef = "chSqlSessionFactory") +public class DruidConfig { + private Log log = LogFactory.getLog(DruidConfig.class); //初始化日志 + static final String CHMAPPER_LOCATION = "classpath:mapper/webfs/*.xml"; + + /** + * 配置为主要数据源 + * @return + * @throws Exception + */ + + @Bean(name = "chDataSource") + @Qualifier("chDataSource") + public DataSource druidDataSource() throws Exception{ + //配置文件的真实路径 + String dbconf = ChConstant.WORK_DIR + ChConstant.DB_CONF; + Properties prop = new Properties(); + prop.load(new FileReader(dbconf)); + log.info("master druid:"+dbconf); + //使用datasource方式 + DruidDataSource dataSource = new DruidDataSource(); + String dburl = prop.getProperty("druid.url"); + dataSource.setUrl(dburl); + dataSource.setUsername(prop.getProperty("druid.username")); + dataSource.setPassword(prop.getProperty("druid.password")); + + return dataSource; + } + + + @Bean + public ServletRegistrationBean druidServlet() { + // 进行 druid 监控的配置处理 + ServletRegistrationBean srb = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); + // 白名单 + srb.addInitParameter("allow", "127.0.0.1"); + // 黑名单 + //srb.addInitParameter("deny", "192.168.31.253"); + // 用户名 + //srb.addInitParameter("loginUsername", "root"); + // 密码 + //srb.addInitParameter("loginPassword", "root"); + // 是否可以重置数据源 + srb.addInitParameter("resetEnable", "false"); + log.info("druid监控配置:" + srb); + return srb; + } + + @Bean + public FilterRegistrationBean filterRegistrationBean() { + FilterRegistrationBean frb = new FilterRegistrationBean<>(); + frb.setFilter(new WebStatFilter()); + // 所有请求进行监控处理 + frb.addUrlPatterns("/*"); + // 排除名单 + frb.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*"); + return frb; + } + + + @Bean(name="chSqlSessionFactory") + public SqlSessionFactory aisSqlSessionFactory(@Qualifier("chDataSource") DataSource dataSource) throws Exception { + SqlSessionFactoryBean bean=new SqlSessionFactoryBean(); + bean.setDataSource(dataSource); + bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DruidConfig.CHMAPPER_LOCATION)); + log.info("chSqlSessionFactory"+bean.toString()); + return bean.getObject(); + } + + //配置事务 + @Bean(name="transactionManager") + public DataSourceTransactionManager testTransactionManager(@Qualifier("chDataSource") DataSource dataSource) { + return new DataSourceTransactionManager(dataSource); + } + +// + @Bean(name="sqlSessionTemplate") + public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("chSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { + return new SqlSessionTemplate(sqlSessionFactory); + } +} \ No newline at end of file diff --git a/src/main/java/io/xtfs/jwebfs/constant/ChConstant.java b/src/main/java/io/xtfs/jwebfs/constant/ChConstant.java new file mode 100644 index 0000000..2fa2173 --- /dev/null +++ b/src/main/java/io/xtfs/jwebfs/constant/ChConstant.java @@ -0,0 +1,27 @@ +package io.xtfs.jwebfs.constant; + + +import io.xtfs.jwebfs.configure.EnvConfig; + +/** + * 系统常量 + */ +public class ChConstant { + //项目运行目录 + public static final String WORK_DIR = EnvConfig.yxDbConf(); + + //数据库链接文件路径 + public static final String DB_CONF = "/conf/conf.properties"; + + //分页大小 + public static final int PAGESIZE=12; + + //上传目录 + public static final String UPLOAD_DIR = "/upload"; + + //密钥 + public static final String SYS_SECRECT="An`)bBmyjf`."; + + //加密短语 + public static final String SYS_SECRECT_SHORT_WORD="9149D"; +} diff --git a/src/main/java/io/xtfs/jwebfs/mapper/WbFileMapper.java b/src/main/java/io/xtfs/jwebfs/mapper/WbFileMapper.java new file mode 100644 index 0000000..95b242e --- /dev/null +++ b/src/main/java/io/xtfs/jwebfs/mapper/WbFileMapper.java @@ -0,0 +1,41 @@ +package io.xtfs.jwebfs.mapper; + +import io.xtfs.jwebfs.bean.WbFile; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +public interface WbFileMapper { + /** + * 新增 + * @param wbFile + * @return + */ + int addRs(WbFile wbFile); + + /** + * 列表 + * @param map + * @param start + * @param limit + * @return + */ + List getWbFileByMap(@Param("map") Map map, int start, int limit); + + /** + * 详情 + * @param id + * @return + */ + WbFile getWbfileById(Integer id); + + /** + * 统计 + * @param map + * @return + */ + int countRs(@Param("gmap")Map map); +} diff --git a/src/main/resources/mapper/webfs/WbFileMapper.xml b/src/main/resources/mapper/webfs/WbFileMapper.xml new file mode 100644 index 0000000..9702ca1 --- /dev/null +++ b/src/main/resources/mapper/webfs/WbFileMapper.xml @@ -0,0 +1,78 @@ + + + + + id.filename,filehash + wbfile + + + + + + + + + + + + + INSERT INTO + (filename,filehash) + VALUES + (#{filename},#{filehash}) + + + + + UPDATE + + + filename=#{filename}, + + + filehash=#{filehash} + + + + WHERE good_id=#{goods_id} + + \ No newline at end of file diff --git a/src/test/java/io/xtfs/jwebfs/mapper/WbFileMapperTest.java b/src/test/java/io/xtfs/jwebfs/mapper/WbFileMapperTest.java new file mode 100644 index 0000000..9e9cd64 --- /dev/null +++ b/src/test/java/io/xtfs/jwebfs/mapper/WbFileMapperTest.java @@ -0,0 +1,38 @@ +package io.xtfs.jwebfs.mapper; + +import io.xtfs.jwebfs.bean.WbFile; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class WbFileMapperTest { + @Autowired + private WbFileMapper wbFileMapper; + + @Test + public void addRs() { + WbFile wbFile = new WbFile(); + wbFile.setFilehash("ss"); + wbFile.setFilenmae("test"); + int rt= wbFileMapper.addRs(wbFile); + System.out.println(rt); + } + + @Test + public void getWbFileByMap() { + } + + @Test + public void getWbfileById() { + } + + @Test + public void countRs() { + } +} \ No newline at end of file