在pom.xml中加入如下依赖
junit
junit
3.8.1
test
junit
junit
3.8.1
test
org.springframework
spring-context
5.0.2.RELEASE
org.springframework
spring-webmvc
5.0.2.RELEASE
org.springframework
spring-web
5.0.2.RELEASE
org.mongodb
mongodb-driver
3.6.0
com.alibaba
fastjson
1.2.28
org.apache.httpcomponents
httpclient
4.5.4
需要将resource目录指定为resource目录,这样,将配置文件放置在该目录下会自动复制到你设置的类输出目录中,否则使用”classpath”时会找不到配置文件
2.基本配置文件编写
1.web.xml配置文件编写
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/dispatcher-servlet.xml
1
dispatcher
/
contextConfigLocation
classpath:spring/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
需要理解的是classpath指的是编译java代码的输出路径
2.springmvc配置文件编写
mvc:annotation-driven/
<content:component-scan base-package=“Test,Utils,Dao,Service,Action”></content:component-scan>
<mvc:resources mapping=“/Plug-in/” location=“Plug-in”></mvc:resources>
<mvc:resources mapping=“/Image/” location=“Image”></mvc:resources>
mvc:interceptors
mvc:interceptor
<mvc:mapping path=“/**”/>
<mvc:exclude-mapping path=“/index.do”/>
</mvc:interceptor>
</mvc:interceptors>
classpath:/config/mongoconfig.properties
3.代码
1.dao
//dao接口
package Dao;
import java.util.List;
import java.util.Map;
public interface BaseDao {
public List executeQuery(Map<String,Object> condition, String dbname, String collname,int number,int isDataLimit);
public void executeAdd(Map<String,Object> condition,String dbname,String collname);
public void executeUpdate(Map<String,Object> condition,String dbname,String collname);
public void executeRemove(Map<String,Object> condition,String dbname,String collname);
}
//dao实现
package Dao;
import Beans.Location;
import Utils.DumpClassUtil;
import Utils.MongoUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component(“cityMapDao”)
public class CityMaoDao implements BaseDao {
@Resource(name = “mongoUtil”)
private MongoUtil mongoUtil;
public List executeQuery(Map<String,Object> condition, String dbname, String collname,int number,int isDataLimit) {
List result = new ArrayList();
MongoCollection collection = mongoUtil.getClient().getDatabase(dbname).getCollection(collname);
FindIterable documents = null;
if(isDataLimit == 1) {
if(condition != null)
documents = collection.find(new Document(condition)).limit(number);
else
documents = collection.find().limit(number);
}else{
if(condition != null)
documents = collection.find(new Document(condition));
else
documents = collection.find();
}
for(Document document:documents){
Location loc = DumpClassUtil.dumpLocation(document);
if(loc != null) {
result.add(loc);
}
}
return result;
}
public void executeAdd(Map<String,Object> condition,String dbname,String collname) {
}
public void executeUpdate(Map<String,Object> condition,String dbname,String collname) {
}
public void executeRemove(Map<String,Object> condition,String dbname,String collname) {
}
}
2.service
//service接口
package Service;
import Dao.BaseDao;
import java.util.Map;
public interface BaseService {
public Object service(Map<String,Object> map, String dbName,String colName,int Number,int isDataLimit);
}
//service实现
package Service;
import Dao.BaseDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.Map;
@Component(“cityService”)
public class CityService implements BaseService {
@Resource(name = “cityMapDao”)
private BaseDao dao;
public Object service(Map<String,Object> map, String dbName,String colName,int number,int isDataLimit) {
return dao.executeQuery(map,dbName,colName,number,isDataLimit);
}
}
3.bean类
package Beans;
import java.util.Date;
public class Location {
private String detailUrl;
private String address;
private Float size;
private String orient;
private String roomNum;
public void setDetailUrl(String detailUrl) {
this.detailUrl = detailUrl;
}
public void setAddress(String address) {
this.address = address;
}
public void setSize(Float size) {
this.size = size;
}
public void setOrient(String orient) {
this.orient = orient;
}
public void setRoomNum(String rooomNum) {
this.roomNum = rooomNum;
}
public void setUnitPrice(Float unitPrice) {
this.unitPrice = unitPrice;
}
public void setSumPrice(Float sumPrice) {
this.sumPrice = sumPrice;
}
public void setLn(Double ln) {
this.ln = ln;
}
public void setLat(Double lat) {
this.lat = lat;
}
public void setTime(Date time) {
this.time = time;
}
public void setCity(String city) {
this.city = city;
}
public String getDetailUrl() {
return detailUrl;
}
public String getAddress() {
return address;
}
public Float getSize() {
return size;
}
public String getOrient() {
return orient;
}
public String getRoomNum() {
return roomNum;
}
public Float getUnitPrice() {
return unitPrice;
}
public Float getSumPrice() {
return sumPrice;
}
public Double getLn() {
return ln;
}
public Double getLat() {
return lat;
}
public Date getTime() {
return time;
}
public String getCity() {
return city;
}
public String print(){
return “address:”+this.getAddress()+
“Size:”+this.getSize()+
“orient:”+this.getOrient()+
“detailUrl:”+this.getDetailUrl()+
“unitPrice:”+this.getUnitPrice()+
“sumPrice:”+this.getSumPrice()+
“RooomNum:”+this.getRoomNum()+
“Ln:”+this.getLn()+
“Lat:”+this.getLat()+
“Time:”+this.getTime();
}
private Float unitPrice;
private Float sumPrice;
private Double ln;
private Double lat;
private Date time;
private String city;
}
4.用于封装bean的util类
package Utils;
import org.bson.Document;
import Beans.Location;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DumpClassUtil {
public static Location dumpLocation(Document doc){
Location location = new Location();
if(doc.containsKey(“address”)){
location.setAddress(doc.getString(“address”));
}
if(doc.containsKey(“city”)){
location.setCity(doc.getString(“city”));
}
if(doc.containsKey(“roomNum”)){
location.setRoomNum(doc.getString(“roomNum”));
}
if(doc.containsKey(“orient”)){
location.setOrient(doc.getString(“orient”));
}
if(doc.containsKey(“size”)){
try {
Float size = Float.parseFloat(doc.getString(“size”));
location.setSize(size);
}catch (Exception e){
return null;
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
y {
Float size = Float.parseFloat(doc.getString(“size”));
location.setSize(size);
}catch (Exception e){
return null;
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-PhmPIRn4-1712886885364)]
[外链图片转存中…(img-D5j5KMz0-1712886885364)]
[外链图片转存中…(img-RJeLBQMR-1712886885365)]
[外链图片转存中…(img-cpGiOZPd-1712886885365)]
[外链图片转存中…(img-nivX035A-1712886885365)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-w5hqMeAE-1712886885366)]