SpringMVC整合MongoDB开发
来源:互联网 发布:2017淘宝图片空间收费 编辑:程序博客网 时间:2024/05/21 16:19
1. 项目结构
2.配置说明
2.1 web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>springmvcmongo</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-web.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>2.2 applicationContext-mongo.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <context:property-placeholder location="classpath:ENVSpecific.properties" /> <mongo:mongo id="mongo" replica-set="${mongo.hostport}"/> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongo" ref="mongo"/> <constructor-arg name="databaseName" value="${databasename}"/> <constructor-arg name="userCredentials" ref="mongoCredentials"/></bean><bean id="mongoCredentials" class="org.springframework.data.authentication.UserCredentials" > <constructor-arg name="username" value="${mongo.username}" /> <constructor-arg name="password" value="${mongo.password}" /></bean> </beans>2.3 springmvc-web.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><context:component-scan base-package="com.npf.controller"/><mvc:annotation-driven /><mvc:resources location="/resources/" mapping="/resources/**"/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean></beans>2.4 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <import resource="classpath:applicationContext-mongo.xml"/> <context:component-scan base-package="com.npf"></context:component-scan> </beans>
2databasename=unittestsmongo.hostport=dbdv01:32017,dbdv02:32017,dbdv03:32017mongo.username=onemongo.password=one
3. 持久层的操作实现
3.1 BaseDao
package com.npf.dao.base;import java.util.List;import org.springframework.data.mongodb.core.query.Query;public interface BaseDao<T> {public void save(T t,String collectionName);public void remove(Query query,Class<T> clazz,String collectionName);public T findById(Object id,Class<T> clazz,String collectionName);public T findOne(Query query,Class<T> clazz,String collectionName);public List<T> findAll(Class<T> clazz,String collectionName);public List<T> find(Query query,Class<T> clazz,String collectionName);public List<T> findByPage(Query query,Class<T> clazz,String collectionName,int start, int size);public Long getPageCount(Query query,Class<T> clazz);}3.2 BaseDaoImpl
package com.npf.dao.base.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import com.npf.dao.base.BaseDao;public class BaseDaoImpl<T> implements BaseDao<T> {@Autowiredprotected MongoTemplate mongoTemplate;@Overridepublic void save(T t,String collectionName){ this.mongoTemplate.save(t, collectionName);} @Overridepublic void remove(Query query,Class<T> clazz,String collectionName){mongoTemplate.remove(query, clazz, collectionName);}@Overridepublic T findById(Object id,Class<T> clazz,String collectionName) {Query query = new Query(); Criteria criteria = Criteria.where("_id").is(id); query.addCriteria(criteria);return mongoTemplate.findById(query, clazz,collectionName);}@Overridepublic T findOne(Query query,Class<T> clazz,String collectionName) {return mongoTemplate.findOne(query, clazz, collectionName);}@Overridepublic List<T> findAll(Class<T> clazz,String collectionName) {return mongoTemplate.findAll(clazz, collectionName);}@Overridepublic List<T> find(Query query,Class<T> clazz,String collectionName) {return mongoTemplate.find(query, clazz, collectionName);}@Overridepublic List<T> findByPage(Query query, Class<T> clazz,String collectionName, int start, int size) {query.skip(start); query.limit(size); List<T> lists = this.mongoTemplate.find(query, clazz,collectionName);return lists;}@Overridepublic Long getPageCount(Query query,Class<T> clazz) {return mongoTemplate.count(query, clazz);}public void updateFirst(Query query,Class<T> clazz,Update update){ this.mongoTemplate.updateFirst(query, update, clazz); }public void updateMulti(Query query, Class<T> clazz,Update update){ this.mongoTemplate.updateMulti(query, update, clazz); } public void updateInser(Query query,Class<T> clazz, Update update){ this.mongoTemplate.upsert(query, update, clazz); }}3.3 UserDao
package com.npf.dao.user;import com.npf.dao.base.BaseDao;import com.npf.entity.User;public interface UserDao extends BaseDao<User> {}3.4 UserDaoImpl
package com.npf.dao.user.impl;import org.springframework.stereotype.Repository;import com.npf.dao.base.impl.BaseDaoImpl;import com.npf.dao.user.UserDao;import com.npf.entity.User;@Repository("userDao")public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {}4. Service 层
4.1 UserService
package com.npf.service;import java.util.List;import com.npf.entity.User;public interface UserService {public List<User> getAllUsers();public User getUserById(String id);public void saveUser(User user);}4.2 UserServiceImpl
package com.npf.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.npf.dao.user.UserDao;import com.npf.entity.User;import com.npf.service.UserService;import com.npf.util.CollectionConstants;@Service("userService")public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic List<User> getAllUsers() {return userDao.findAll(User.class, CollectionConstants.users);}@Overridepublic User getUserById(String id) {return userDao.findById(id, User.class, CollectionConstants.users);}@Overridepublic void saveUser(User user) {userDao.save(user, CollectionConstants.users);}}5. Controller 层
package com.npf.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import com.npf.entity.User;import com.npf.service.UserService;@Controllerpublic class UserController {@Autowiredprivate UserService userService;@RequestMapping("/user/list")public ModelAndView fetchAllUser(){List<User> userList = userService.getAllUsers();ModelAndView modelAndView = new ModelAndView("user/list");modelAndView.addObject("userList", userList);return modelAndView;}}6. 测试
url : http://localhost:8080/springmvcmongo/user/list
源代码已经托管到Github上面:springmvcmongo
参考文献:
1. http://www.linuxidc.com/Linux/2015-02/114229.htm
2. http://www.linuxidc.com/Linux/2015-02/114229p2.htm
0 0
- SpringMVC整合MongoDB开发
- SpringMVC整合MongoDB开发 高级操作
- SpringMVC整合MongoDB开发 架构搭建
- SpringMVC整合MongoDB开发 高级操作
- SpringMVC整合Mongodb开发,高级操作
- SpringMVC整合Mongodb开发 架构搭建
- SpringMVC整合Mongodb开发,高级操作
- SpringMVC整合MongoDB开发(上)
- SpringMVC整合MongoDB开发(下)
- springMVC+mongodb整合(morphia)
- springmvc-mongodb-maven整合
- springmvc mongodb maven 整合
- SpringMVC+MongoDB+Maven整合
- springmvc + mongodb 整合
- mongodb和springMVC整合
- Mongodb数据库与springmvc整合
- springmvc整合mongodb 增查改删操作
- SpringMVC+MongoDB整合及注意事项
- Notification
- frame与bounds的含义与区别
- iOS 清除xcode缓存和生成文件
- UVA 1500-Alice and Bob
- [Array]Combination Sum III
- SpringMVC整合MongoDB开发
- 获取文本内容高度和宽度
- 三阶魔方教程
- 文件备份
- word2vec源代码解析
- css3八大新功能
- java异常处理
- java面试题
- CSS3跟CSS2相比较,有哪些重大的变化