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类型即可;





原创粉丝点击