springboot
来源:互联网 发布:零日网络战 编辑:程序博客网 时间:2024/05/21 14:44
今天就半天时间了,感慨一下;最近一年多都忙的不可开交;今天终于可有点儿时间,可以着手写点东西了.....非常感谢工作和生活.....
个人的项目使用了spring eureka管理的,不要在意我的代码结构问题;结合自身项目特点,合理组织自身代码
1、开发环境
wind7 、jdk1.8、IJ EDEA 2017(实际开发中2016版本,在集成kafka的过程中始终报错,巨坑)
2、准备工作
安装mongoDB (这里就不说了)
3、创建springboot项目,这里也不说了
4、配置maven的jar包坐标:(以下地方均贴放完整代码,方便各位参考开发)
<?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"> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> <relativePath/> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.qhzx.sdip</groupId> <artifactId>sdip-config-center</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.35</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.10.4.RELEASE</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
5.配置application.properties中mongoDB的地址
#mongodb配置spring.data.mongodb.uri=mongodb://user:password@IP:PORT/mongoDBName
6.加载mongo模板
import com.mongodb.DBCollection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.stereotype.Component;/** * <p>类描述</p> * * @author YUANYIRUI839 */@Component("mgTemplate")public class MgTemplate { @Autowired private MongoTemplate mongoTemplate; public DBCollection getCollection(String collectionName) { return mongoTemplate.getCollection(collectionName); }}
7.编写service层代码
接口:
import com.mongodb.BasicDBList;import com.mongodb.DBObject;/** * <p>类描述</p> * 用户管理: * 1.分配用户:机构号,手机,法人身份证,联系人,状态(启用,禁用),描述-->>分配用户和密码 * 2.更新用户: * 3.找回用户:机构号,手机,法人身份证 * * @created by yuanyirui839 20170904 */public interface IUserService { //新增用户 返回 用户名和密码 int addUser(String orgCode, String mobileNum, String IDCard, String contact, String userId, String pwd); //查询用户(找回用户) DBObject queryUser(String userId, String orgCode, String mobileNum, String IDCard); //删除(禁用和启用) int operateUser(String orgCode, String status); //更新 int updateUser(String userId, String orgCode, String mobileNum, String IDCard, String contact); //更新密码 int updateUserPwd(String orgCode, String oldPwd, String newPwd); //删除用户 int deleteUser(String orgCode, String userId);}
接口实现:
import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import org.apache.commons.lang.StringUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * <p>类描述</p> * 用户管理: * 1.分配用户:机构号,手机,法人身份证,联系人,状态(启用,禁用),描述-->>分配用户和密码 * 2.更新用户: * 3.找回用户:机构号,手机,法人身份证 * * @created by yuanyirui839 20170904 */@Component("userService")public class UserService implements IUserService { private static Log logger = LogFactory.getLog(UserService.class); //商户用户 static String COLLECTION_NAME = "ORG_USER"; @Autowired MgTemplate mgTemplate; //新增用户 返回 用户名和密码 public int addUser(String orgCode, String mobileNum, String IDCard, String contact, String userId, String pwd) { //构建文档(本身是面向文档存储) DBObject document = new BasicDBObject(); document.put(Const.ORG_CODE, orgCode); document.put(Const.MOBILE_NUM, mobileNum); document.put(Const.ID_CARD, IDCard); document.put(Const.CONTACT, contact); document.put(Const.USER_ID, userId); document.put(Const.USER_PWD, pwd); //设置为使用中 document.put(Const.STATUS, Const.INUSE); //存入的时候,注意相同的数据只保存一条 document.put(Const._ID, orgCode); //获取集合,在集合中插入数据 getN()返回受影响的条数 int row = mgTemplate.getCollection(COLLECTION_NAME).save(document).getN(); return row; } //查询用户(找回用户信息) public DBObject queryUser(String userId, String orgCode, String mobileNum, String idCard) { DBObject query = buildQuery(userId, orgCode, mobileNum, idCard); DBObject dbObject = new BasicDBObject(); dbObject.put(Const._ID, 0); DBObject result = mgTemplate.getCollection(COLLECTION_NAME).findOne(query, dbObject); return result; } //构造查询条件 private DBObject buildQuery(String userId, String orgCode, String mobileNum, String idCard) { DBObject query = new BasicDBObject(); if (StringUtils.isNotBlank(userId)) { query.put(Const.USER_ID, userId); } if (StringUtils.isNotBlank(orgCode)) { query.put(Const.ORG_CODE, orgCode); } if (StringUtils.isNotBlank(mobileNum)) { query.put(Const.MOBILE_NUM, mobileNum); } if (StringUtils.isNotBlank(idCard)) { query.put(Const.ID_CARD, idCard); } return query; } //删除(禁用和启用) public int operateUser(String orgCode, String status) { DBObject update = queryUser("", orgCode, "", ""); //构建文档(本身是面向文档存储) DBObject query = new BasicDBObject(); //存入的时候,注意相同的数据只保存一条 query.put(Const.ORG_CODE, orgCode); update.put(Const.STATUS, status); //获取集合,在集合中插入数据 getN()返回受影响的条数 int row = mgTemplate.getCollection(COLLECTION_NAME).update(query, update).getN(); return row; } //更新 public int updateUser(String userId, String orgCode, String mobileNum, String idCard, String contact) { DBObject document = queryUser(userId, orgCode, "", ""); logger.info("返回值:"+document.toString()); document.put(Const.MOBILE_NUM, mobileNum); document.put(Const.ID_CARD, idCard); document.put(Const.CONTACT, contact); //存入的时候,注意相同的数据只保存一条 document.put(Const._ID, orgCode); //设置为使用中 document.put(Const.STATUS, Const.INUSE); //获取集合,在集合中插入数据 getN()返回受影响的条数 int row = mgTemplate.getCollection(COLLECTION_NAME).save(document).getN(); return row; } //更新密码 public int updateUserPwd(String orgCode, String oldPwd, String newPwd) { DBObject query = new BasicDBObject(); query.put(Const.ORG_CODE, orgCode); DBObject update = queryUser("", orgCode, "", ""); update.put(Const.USER_PWD, newPwd); //获取集合,在集合中插入数据 getN()返回受影响的条数 int row = mgTemplate.getCollection(COLLECTION_NAME).update(query, update).getN(); return row; } //删除 @Override public int deleteUser(String orgCode, String userId) { DBObject query = new BasicDBObject(); if (StringUtils.isNotBlank(orgCode)) { query.put(Const.ORG_CODE, orgCode); } if (StringUtils.isNotBlank(userId)) { query.put(Const.USER_ID, userId); } //获取集合,在集合中插入数据 getN()返回受影响的条数 int row = mgTemplate.getCollection(COLLECTION_NAME).remove(query).getN(); return row; }}
8.编写controller层代码:
import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import org.apache.commons.lang.RandomStringUtils;import org.apache.commons.lang.StringUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;/** * Created by YUANYIRUI839 on 2017-09-04. * 用户配置中心 */@RestController@RequestMapping("userConfCenter")public class UserConfigCenter { private static Log logger = LogFactory.getLog(UserConfigCenter.class); @Autowired private IUserService userService; /** * 新增用户;机构可以申请或者系统分配用户名和密码 */ @ResponseBody @RequestMapping("/addUser") public AjaxResult addUser(String orgCode, String mobileNum, String IDCard, String contact, String userId, String userPwd) { AjaxResult result = AjaxResult.createSuccAjaxResult(); try { if (StringUtils.isBlank(orgCode)) { return AjaxResult.createErrorAjaxResult("请填写组织机构代码"); } if (StringUtils.isBlank(userId) && StringUtils.isBlank(userPwd)) { boolean existUserId = false; while (!existUserId) { userId = RandomStringUtils.random(8, Const.RANDOM_STR_UP); logger.info("生成用户ID:" + userId); existUserId = queryUserByUserId(userId) == null ? true : false; } //生成密码 userPwd = RandomStringUtils.random(8, Const.RANDOM_STR); } //添加用户 int addRow = userService.addUser(orgCode, mobileNum, IDCard, contact, userId, userPwd); DBObject dbObject=new BasicDBObject(); dbObject.put(Const.USER_ID,userId); dbObject.put(Const.USER_PWD,userPwd); result.setData(dbObject); logger.info("返回行数: " + dbObject.toString()); return result; } catch (Exception e) { e.printStackTrace(); return AjaxResult.createErrorAjaxResult(e.getMessage()); } } private DBObject queryUserByUserId(String userId) { DBObject dbObject = userService.queryUser(userId, "", "", ""); return dbObject; } /** * 删除用户 */ @ResponseBody @RequestMapping("/deleteUser") public AjaxResult deleteUser(String orgCode, String userId) { AjaxResult result = AjaxResult.createSuccAjaxResult(); try { // int operateRow = userService.deleteUser(orgCode, userId); result.setData(operateRow); logger.info("删除用户影响的条数 : " + operateRow); return result; } catch (Exception e) { return AjaxResult.createErrorAjaxResult(e.getMessage()); } } /** * 更新用户信息 */ @ResponseBody @RequestMapping("/updateUser") public AjaxResult updateUser(String userId, String orgCode, String mobileNum, String IDCard, String contact) { AjaxResult result = AjaxResult.createSuccAjaxResult(); try { //更新 int updateRow = userService.updateUser(userId, orgCode, mobileNum, IDCard, contact); result.setData(updateRow); logger.info("更新影响的条数 : " + updateRow); return result; } catch (Exception e) { return AjaxResult.createErrorAjaxResult(e.getMessage()); } } }
到此结束,请忽略返回值,请将返回值,直接改为String类型即可;
阅读全文
0 0
- springboot
- SpringBoot
- SpringBoot
- springboot
- SpringBoot
- springboot
- SpringBoot
- springboot
- Springboot
- springboot
- SpringBoot
- SpringBoot
- Springboot
- springboot
- springboot
- Springboot
- springboot
- springBoot
- Linux为Mysql安装Mysql-connector
- springboot表单验证
- 解决ScrollView嵌套viewpager的冲突问题
- PLL总结——设置时钟频率
- 防火防盗防诈骗!老实程序员如何保护好自己?
- springboot
- swipe.js触摸后不自动滚动的修改
- PAT (Basic Level) Practise (中文) 1067. 试密码(20)
- [转]让你的表单升级到CSS3和HTML5客户端验证
- win10下ctrl+space不影响ide(eclipse+intellij idea)
- Python学习笔记Day
- javax.naming.NameNotFoundException: Name spring.liveBeansView.mbeanDomain is not bound in this Conte
- Linux Source命令及脚本的执行方式解析
- 工作笔记20170915