Service
Serrvice包含方法
增:insert(对象)
删:remove(对象)
改:updateFirst(query,update,class)
Query query = new Query(Criteria.where("id").is(song.getId()));
Update update = new Update();
update.set("name",song.getName());
update.set("gmtModified", LocalDateTime.now());
UpdateResult result = mongoTemplate.updateFirst(query, update, Song.class);
查(根据主键):findById(主键,类名)
查全部:findAll(类名)
根据分页查询:
全部数据
分页器
总数
Criteria criteria = new Criteria();
List<Criteria> subCris = new ArrayList<>();
if(StringUtils.hasText(songQueryParam.getName())){
subCris.add(Criteria.where("name").is(songQueryParam.getName()));
}
if(StringUtils.hasText(songQueryParam.getLyrics())){
subCris.add(Criteria.where("lyrics").is(songQueryParam.getLyrics()));
}
if(StringUtils.hasText(songQueryParam.getId())){
subCris.add(Criteria.where("id").is(songQueryParam.getId()));
}
if(!subCris.isEmpty()){
criteria.andOperator(subCris.toArray(new Criteria[]{}));
}
Query query = new Query(criteria);
long count = mongoTemplate.count(query,Song.class);
Pageable pageable = PageRequest.of(songQueryParam.getPageNum()-1,songQueryParam.getPageSize());
query.with(pageable);
List<Song> songs = mongoTemplate.find(query, Song.class);
Page<Song> page = PageableExecutionUtils.getPage(songs, pageable, new LongSupplier() {
@Override
public long getAsLong() {
return count;
}
});
return page;
测试Service步骤
爬取流程
构建必要的http,header
将referer、host、cookie等信息封装进Map中等待后来调用
public Map<String,String> buildHeader(String referer,String host,String cookie){
Map<String,String> header = new HashMap<>();
if(!referer.isEmpty()){
header.put("referer",referer);
}
if(!host.isEmpty()){
header.put("host",host);
}
if(!cookie.isEmpty()){
header.put("cookie",cookie);
}
return header;
}
发送请求,读取页面内容
public String getContent(String url,Map<String,String> headers){
// okHttpClients实例
OkHttpClient okHttpClient = new OkHttpClient();
// 定义一个request
Request request = new Request.Builder()
.url(url)
.addHeader("Referer",headers.get("referer"))
.addHeader("Host",headers.get("host"))
.addHeader("Cookie",headers.get("cookie"))
.build();
// 返回结果字符串
String result = null;
try {
// 执行请求
Response response = okHttpClient.newCall(request).execute();
result = response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
记得自动注入HttpUtil类
调用方法
Map<String, String> header = httpUtil.buildHeader(COL_REFERER, HOST, COOKIE);
// 获取信息
String content = httpUtil.getContent(COL_URL, header);
图片防盗链
JavaScript发起请求
fetch(
'https://www.xxx.com/xxx/xxx/xxx'
)
.then(function(response) {
return response.json();
})
.then(function(myJson) {
console.log(myJson);
});
使用获取到的json
li.innerHTML = `
<div class="aaa">${myJson.name}</div>
`;