diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb38415 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +/target/ +/case.iml diff --git a/src/main/java/com/bsd/cases/controller/BaseController.java b/src/main/java/com/bsd/cases/controller/BaseController.java index 7a6aa2c..a2b40f2 100644 --- a/src/main/java/com/bsd/cases/controller/BaseController.java +++ b/src/main/java/com/bsd/cases/controller/BaseController.java @@ -10,6 +10,7 @@ import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.MessageSourceAware; +import org.springframework.web.bind.annotation.CrossOrigin; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; diff --git a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java index e78b741..4537ec7 100644 --- a/src/main/java/com/bsd/cases/controller/CaseCategoryController.java +++ b/src/main/java/com/bsd/cases/controller/CaseCategoryController.java @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONObject; import com.bsd.cases.service.CaseCategoryService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +@CrossOrigin @RestController @RequestMapping("/case-category") public class CaseCategoryController { diff --git a/src/main/java/com/bsd/cases/controller/CaseContentController.java b/src/main/java/com/bsd/cases/controller/CaseContentController.java index 4fc58b0..acadb1e 100644 --- a/src/main/java/com/bsd/cases/controller/CaseContentController.java +++ b/src/main/java/com/bsd/cases/controller/CaseContentController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.bsd.cases.service.CaseContentService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +@CrossOrigin @RestController @RequestMapping("/case-content") public class CaseContentController { diff --git a/src/main/java/com/bsd/cases/controller/CaseRecommendController.java b/src/main/java/com/bsd/cases/controller/CaseRecommendController.java new file mode 100644 index 0000000..62a7246 --- /dev/null +++ b/src/main/java/com/bsd/cases/controller/CaseRecommendController.java @@ -0,0 +1,32 @@ +package com.bsd.cases.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bsd.cases.model.CaseRecommend; +import com.bsd.cases.service.CaseRecommendService; +import com.bsd.cases.util.AjaxResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/case-recommend") +public class CaseRecommendController { + @Resource + private CaseRecommendService caseRecommendService; + + @RequestMapping("/get-case-recommend") + public AjaxResult getAllCategory(HttpServletRequest request) { + AjaxResult ajaxResult = new AjaxResult(); + List caseRecommendList = caseRecommendService.getCaseRecommend(); + if (null!=caseRecommendList){ + ajaxResult.setRetcode(AjaxResult.SUCCESS); + ajaxResult.setData(caseRecommendList); + }else { + ajaxResult.setRetcode(AjaxResult.FAILED); + } + return ajaxResult; + } +} diff --git a/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java b/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java index 8fdfd13..a6cf030 100644 --- a/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java +++ b/src/main/java/com/bsd/cases/mapper/CaseCategoryMapper.java @@ -2,8 +2,13 @@ package com.bsd.cases.mapper; import com.bsd.cases.model.CaseCategory; import com.bsd.cases.util.CommonMapper; +import com.bsd.cases.vo.CaseSearchVo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface CaseCategoryMapper extends CommonMapper { + List search(@Param("name") String name); } diff --git a/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java b/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java new file mode 100644 index 0000000..bcde2a9 --- /dev/null +++ b/src/main/java/com/bsd/cases/mapper/CaseRecommendMapper.java @@ -0,0 +1,9 @@ +package com.bsd.cases.mapper; + +import com.bsd.cases.model.CaseRecommend; +import com.bsd.cases.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface CaseRecommendMapper extends CommonMapper { +} diff --git a/src/main/java/com/bsd/cases/model/CaseCategory.java b/src/main/java/com/bsd/cases/model/CaseCategory.java index 70616c0..a69a324 100644 --- a/src/main/java/com/bsd/cases/model/CaseCategory.java +++ b/src/main/java/com/bsd/cases/model/CaseCategory.java @@ -15,4 +15,5 @@ public class CaseCategory extends BaseEntity{ private Long parentId; + private String url; } diff --git a/src/main/java/com/bsd/cases/model/CaseRecommend.java b/src/main/java/com/bsd/cases/model/CaseRecommend.java new file mode 100644 index 0000000..f7723ee --- /dev/null +++ b/src/main/java/com/bsd/cases/model/CaseRecommend.java @@ -0,0 +1,18 @@ +package com.bsd.cases.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("case_recommend") +public class CaseRecommend extends BaseEntity{ + + private Long contentId; + + private String url; + + private Integer sort; + +} diff --git a/src/main/java/com/bsd/cases/service/CaseCategoryService.java b/src/main/java/com/bsd/cases/service/CaseCategoryService.java index 49fbbbd..030bd04 100644 --- a/src/main/java/com/bsd/cases/service/CaseCategoryService.java +++ b/src/main/java/com/bsd/cases/service/CaseCategoryService.java @@ -2,6 +2,7 @@ package com.bsd.cases.service; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.util.AjaxRequest; +import com.bsd.cases.vo.CaseSearchVo; import java.util.List; @@ -10,4 +11,6 @@ public interface CaseCategoryService extends BaseService extends BaseService { + List getCaseRecommend(); +} diff --git a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java index e841b48..d228bb1 100644 --- a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java +++ b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java @@ -1,13 +1,17 @@ package com.bsd.cases.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.bsd.cases.constants.Constants; import com.bsd.cases.mapper.CaseCategoryMapper; import com.bsd.cases.model.CaseCategory; +import com.bsd.cases.model.CaseContent; import com.bsd.cases.service.CaseCategoryService; import com.bsd.cases.util.AjaxRequest; import com.bsd.cases.util.AjaxResult; import com.bsd.cases.util.PageUtils; +import com.bsd.cases.vo.CaseCategoryVo; +import com.bsd.cases.vo.CaseSearchVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -51,15 +55,49 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl caseCategoryList2 = caseCategoryMapper.select(findCaseCategory2); findCaseCategory.setState(Constants.STATE_VALID); - findCaseCategory.setParentId(caseCategoryList2.get(0).getId()); + parentId = caseCategoryList2.get(0).getId(); + findCaseCategory.setParentId(parentId); }else { findCaseCategory.setState(Constants.STATE_VALID); findCaseCategory.setParentId(parentId); } List caseCategoryList = caseCategoryMapper.select(findCaseCategory); JSONObject pageJson = PageUtils.page(caseCategoryList,pageNum,pageSize); + JSONArray jsonArray = pageJson.getJSONArray("list"); + caseCategoryList = JSONObject.parseArray(JSONObject.toJSONString(jsonArray), CaseCategory.class); + List newCaseCategoryVoList = new ArrayList<>(); + for (CaseCategory caseCategory:caseCategoryList){ + CaseCategoryVo caseCategoryVo = new CaseCategoryVo(); + caseCategoryVo.setName(caseCategory.getName()); + caseCategoryVo.setLevel(caseCategory.getLevel()); + caseCategoryVo.setParentId(parentId); + caseCategoryVo.setUrl(caseCategory.getUrl()); + String parenName = caseCategoryMapper.selectByPrimaryKey(parentId).getName(); + caseCategoryVo.setParentName(parenName); + newCaseCategoryVoList.add(caseCategoryVo); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("list",newCaseCategoryVoList); + jsonObject.put("total",pageJson.getInteger("total")); + jsonObject.put("pageNum",pageNum); + jsonObject.put("pages",(int) Math.ceil(Double.valueOf(pageJson.getInteger("total")) / Double.valueOf(pageSize))); + jsonObject.put("pageSize",pageSize); return pageJson; } + /** + * 模糊查询 + * @param name + * @param pageNum + * @param pageSize + * @return + */ + @Override + public JSONObject search(String name, Integer pageNum, Integer pageSize) { + List caseSearchVoList = caseCategoryMapper.search(name); + JSONObject data = PageUtils.page(caseSearchVoList,pageNum,pageSize); + return data; + } + } diff --git a/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java index 4150581..6921fe2 100644 --- a/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java +++ b/src/main/java/com/bsd/cases/service/impl/CaseContentServiceImpl.java @@ -57,6 +57,7 @@ public class CaseContentServiceImpl extends BaseServiceImpl + implements CaseRecommendService { + + @Resource + private CaseRecommendMapper caseRecommendMapper; + + /** + * 首页获取banner图 + * @return + */ + @Override + public List getCaseRecommend() { + Example example = new Example(CaseRecommend.class); + Example.Criteria criteria = example.createCriteria(); + criteria.andEqualTo("state",Constants.STATE_VALID); + example.setOrderByClause("sort asc"); + List caseRecommendList = caseRecommendMapper.selectByExample(example); + return caseRecommendList; + } +} diff --git a/src/main/java/com/bsd/cases/service/impl/WxMpInMemoryConfigStorage.java b/src/main/java/com/bsd/cases/service/impl/WxMpInMemoryConfigStorage.java deleted file mode 100644 index d60d1b5..0000000 --- a/src/main/java/com/bsd/cases/service/impl/WxMpInMemoryConfigStorage.java +++ /dev/null @@ -1,236 +0,0 @@ -package com.bsd.cases.service.impl; - - -import com.bsd.cases.service.WxMpConfigStorage; -import com.bsd.cases.util.wx.common.bean.WxAccessToken; - -import javax.net.ssl.SSLContext; -import java.io.File; - -/** - * 基于内存的微信配置provider,在实际生产环境中应该将这些配置持久化 - * @author chanjarster - * - */ -public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { - - protected volatile String appId; - protected volatile String secret; - protected volatile String partnerId; - protected volatile String partnerKey; - protected volatile String token; - protected volatile String accessToken; - protected volatile String aesKey; - protected volatile long expiresTime; - - protected volatile String oauth2redirectUri; - - protected volatile String http_proxy_host; - protected volatile int http_proxy_port; - protected volatile String http_proxy_username; - protected volatile String http_proxy_password; - - protected volatile String jsapiTicket; - protected volatile long jsapiTicketExpiresTime; - - /** - * 临时文件目录 - */ - protected volatile File tmpDirFile; - - protected volatile SSLContext sslContext; - - public String getAccessToken() { - return this.accessToken; - } - - public boolean isAccessTokenExpired() { - return System.currentTimeMillis() > this.expiresTime; - } - - public synchronized void updateAccessToken(WxAccessToken accessToken) { - updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); - } - - public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) { - this.accessToken = accessToken; - this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l; - } - - public void expireAccessToken() { - this.expiresTime = 0; - } - - public String getJsapiTicket() { - return jsapiTicket; - } - - public void setJsapiTicket(String jsapiTicket) { - this.jsapiTicket = jsapiTicket; - } - - public long getJsapiTicketExpiresTime() { - return jsapiTicketExpiresTime; - } - - public void setJsapiTicketExpiresTime(long jsapiTicketExpiresTime) { - this.jsapiTicketExpiresTime = jsapiTicketExpiresTime; - } - - public boolean isJsapiTicketExpired() { - return System.currentTimeMillis() > this.jsapiTicketExpiresTime; - } - - public synchronized void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) { - this.jsapiTicket = jsapiTicket; - // 预留200秒的时间 - this.jsapiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l; - } - - public void expireJsapiTicket() { - this.jsapiTicketExpiresTime = 0; - } - - public String getAppId() { - return this.appId; - } - - public String getSecret() { - return this.secret; - } - - public String getToken() { - return this.token; - } - - public long getExpiresTime() { - return this.expiresTime; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - public void setSecret(String secret) { - this.secret = secret; - } - - public void setToken(String token) { - this.token = token; - } - - public String getAesKey() { - return aesKey; - } - - public void setAesKey(String aesKey) { - this.aesKey = aesKey; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public void setExpiresTime(long expiresTime) { - this.expiresTime = expiresTime; - } - - @Override - public String getOauth2redirectUri() { - return this.oauth2redirectUri; - } - - public void setOauth2redirectUri(String oauth2redirectUri) { - this.oauth2redirectUri = oauth2redirectUri; - } - - public String getHttp_proxy_host() { - return http_proxy_host; - } - - public void setHttp_proxy_host(String http_proxy_host) { - this.http_proxy_host = http_proxy_host; - } - - public int getHttp_proxy_port() { - return http_proxy_port; - } - - public void setHttp_proxy_port(int http_proxy_port) { - this.http_proxy_port = http_proxy_port; - } - - public String getHttp_proxy_username() { - return http_proxy_username; - } - - public void setHttp_proxy_username(String http_proxy_username) { - this.http_proxy_username = http_proxy_username; - } - - public String getHttp_proxy_password() { - return http_proxy_password; - } - - public void setHttp_proxy_password(String http_proxy_password) { - this.http_proxy_password = http_proxy_password; - } - - @Override - public String toString() { - return "WxMpInMemoryConfigStorage{" + - "appId='" + appId + '\'' + - ", secret='" + secret + '\'' + - ", token='" + token + '\'' + - ", partnerId='" + partnerId + '\'' + - ", partnerKey='" + partnerKey + '\'' + - ", accessToken='" + accessToken + '\'' + - ", aesKey='" + aesKey + '\'' + - ", expiresTime=" + expiresTime + - ", http_proxy_host='" + http_proxy_host + '\'' + - ", http_proxy_port=" + http_proxy_port + - ", http_proxy_username='" + http_proxy_username + '\'' + - ", http_proxy_password='" + http_proxy_password + '\'' + - ", jsapiTicket='" + jsapiTicket + '\'' + - ", jsapiTicketExpiresTime='" + jsapiTicketExpiresTime + '\'' + - ", tmpDirFile='" + tmpDirFile + '\'' + - '}'; - } - - @Override - public String getPartnerId() { - return partnerId; - } - - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - @Override - public String getPartnerKey() { - return partnerKey; - } - - public void setPartnerKey(String partnerKey) { - this.partnerKey = partnerKey; - } - - @Override - public File getTmpDirFile() { - return this.tmpDirFile; - } - - public void setTmpDirFile(File tmpDirFile) { - this.tmpDirFile = tmpDirFile; - } - - @Override - public SSLContext getSSLContext() { - return sslContext; - } - - public void setSSLContext(SSLContext context) { - sslContext = context; - } - -} diff --git a/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java deleted file mode 100644 index be75500..0000000 --- a/src/main/java/com/bsd/cases/service/impl/WxMpServiceImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.bsd.cases.service.impl; - -import com.bsd.cases.service.WxMpConfigStorage; -import com.bsd.cases.service.WxMpService; -import com.bsd.cases.util.wx.common.bean.WxAccessToken; -import com.bsd.cases.util.wx.common.bean.result.WxError; -import com.bsd.cases.util.wx.common.exception.WxErrorException; -import com.bsd.cases.util.wx.common.session.StandardSessionManager; -import com.bsd.cases.util.wx.common.session.WxSessionManager; -import com.bsd.cases.util.wx.common.util.crypto.SHA1; - -import org.apache.http.HttpHost; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -public class WxMpServiceImpl implements WxMpService { - - protected final Logger log = LoggerFactory.getLogger(WxMpServiceImpl.class); - - /** - * 全局的是否正在刷新access token的锁 - */ - protected final Object globalAccessTokenRefreshLock = new Object(); - - /** - * 全局的是否正在刷新jsapi_ticket的锁 - */ - protected final Object globalJsapiTicketRefreshLock = new Object(); - - protected WxMpConfigStorage wxMpConfigStorage; - - protected CloseableHttpClient httpClient; - - protected HttpHost httpProxy; - - private int retrySleepMillis = 1000; - - private int maxRetryTimes = 5; - - protected WxSessionManager sessionManager = new StandardSessionManager(); - - public boolean checkSignature(String timestamp, String nonce, String signature) { - try { - return SHA1.gen(wxMpConfigStorage.getToken(), timestamp, nonce).equals(signature); - } catch (Exception e) { - return false; - } - } - - public String getAccessToken() throws WxErrorException { - return getAccessToken(false); - } - - public String getAccessToken(boolean forceRefresh) throws WxErrorException { - if (forceRefresh) { - wxMpConfigStorage.expireAccessToken(); - } - if (wxMpConfigStorage.isAccessTokenExpired()) { - synchronized (globalAccessTokenRefreshLock) { - if (wxMpConfigStorage.isAccessTokenExpired()) { - String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" - + "&appid=" + wxMpConfigStorage.getAppId() - + "&secret=" + wxMpConfigStorage.getSecret(); - try { - HttpGet httpGet = new HttpGet(url); - if (httpProxy != null) { - RequestConfig config = RequestConfig.custom().setProxy(httpProxy).build(); - httpGet.setConfig(config); - } - CloseableHttpResponse response = getHttpclient().execute(httpGet); - String resultContent = new BasicResponseHandler().handleResponse(response); - WxError error = WxError.fromJson(resultContent); - if (error.getErrorCode() != 0) { - throw new WxErrorException(error); - } - WxAccessToken accessToken = WxAccessToken.fromJson(resultContent); - wxMpConfigStorage.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); - } catch (ClientProtocolException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - } - return wxMpConfigStorage.getAccessToken(); - } - - protected CloseableHttpClient getHttpclient() { - return httpClient; - } -} diff --git a/src/main/java/com/bsd/cases/util/PageUtils.java b/src/main/java/com/bsd/cases/util/PageUtils.java index 453ae3b..fa116cd 100644 --- a/src/main/java/com/bsd/cases/util/PageUtils.java +++ b/src/main/java/com/bsd/cases/util/PageUtils.java @@ -25,6 +25,7 @@ public class PageUtils { jsonObject.put("total",size); jsonObject.put("pageNum",pageNum); jsonObject.put("pageSize",pageSize); + jsonObject.put("pages",(int) Math.ceil(Double.valueOf(size) / Double.valueOf(pageSize))); return jsonObject; } } diff --git a/src/main/java/com/bsd/cases/vo/CaseCategoryVo.java b/src/main/java/com/bsd/cases/vo/CaseCategoryVo.java new file mode 100644 index 0000000..9b58306 --- /dev/null +++ b/src/main/java/com/bsd/cases/vo/CaseCategoryVo.java @@ -0,0 +1,17 @@ +package com.bsd.cases.vo; + +import lombok.Data; + +@Data +public class CaseCategoryVo { + private String name; + + private Integer level; + + private Long parentId; + + private String url; + + private String parentName; + +} diff --git a/src/main/java/com/bsd/cases/vo/CaseSearchVo.java b/src/main/java/com/bsd/cases/vo/CaseSearchVo.java new file mode 100644 index 0000000..dad61ac --- /dev/null +++ b/src/main/java/com/bsd/cases/vo/CaseSearchVo.java @@ -0,0 +1,17 @@ +package com.bsd.cases.vo; + +import lombok.Data; + +@Data +public class CaseSearchVo { + + private Long id; + + private String name; + + private String url; + /** + * type 是 0 就是category type 是 1 是content + */ + private Integer type; +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 9c19e3b..7c58ab6 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,7 +1,5 @@ -#服务器端口号配置 server: port: 8080 - #数据源配置 spring: datasource: @@ -25,7 +23,6 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 50 max-pool-prepared-statement-per-connection-size: 20 - # 页面配置 mvc: view: prefix: /templates/ @@ -34,12 +31,10 @@ spring: cache: false request-context-attribute: request -#日志配置 log4j2 logging: config: classpath:log4j2.yml -#mybatis配置 mybatis: type-aliases-package: com.oceanspot.template.util.model mapper-locations: classpath:mapper/*.xml diff --git a/src/main/resources/application-production.yml b/src/main/resources/application-production.yml index 542f6ce..e74f737 100644 --- a/src/main/resources/application-production.yml +++ b/src/main/resources/application-production.yml @@ -1,7 +1,5 @@ -#服务器端口号配置 server: port: 8080 - #数据源配置 spring: datasource: @@ -25,7 +23,6 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 50 max-pool-prepared-statement-per-connection-size: 20 - # 页面配置 mvc: view: prefix: /templates/ @@ -34,12 +31,10 @@ spring: cache: false request-context-attribute: request -#日志配置 log4j2 logging: config: classpath:log4j2.yml -#mybatis配置 mybatis: type-aliases-package: com.oceanspot.template.util.model mapper-locations: classpath:mapper/*.xml diff --git a/src/main/resources/mapper/CaseCategoryMapper.xml b/src/main/resources/mapper/CaseCategoryMapper.xml index 8726ef2..9ac7ddb 100644 --- a/src/main/resources/mapper/CaseCategoryMapper.xml +++ b/src/main/resources/mapper/CaseCategoryMapper.xml @@ -1,5 +1,10 @@ - +