Java 實(shí)戰(zhàn)范例之精美網(wǎng)上音樂平臺的實(shí)現(xiàn)
一、項(xiàng)目簡述
本系統(tǒng)功能包括: 音樂播放 用戶登錄注冊 用戶信息編輯、頭像修改 歌曲、歌單搜索 歌單打分 歌單、歌曲評論 歌單列表、歌手列表分頁顯示 歌詞同步顯不 音樂收藏、下載、拖動控制、音粉制 后臺對用戶、歌曲、歌手、歌單信息的管理
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm也 行)+ Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支 持)。
項(xiàng)目技術(shù): Springboot + Maven + Mybatis + Vue + Redis, B/S 模式+ Maven等等






歌手信息操作代碼:
@RestController
@Controller
public class SingerController {
@Autowired
private SingerServiceImpl singerService;
@Configuration
public class MyPicConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("/img/singerPic/**").addResourceLocations("file:/Users/hongweiyin/Documents/github-workspace/music-website/music-server/img/singerPic/");
}
}
// 添加歌手
@ResponseBody
@RequestMapping(value = "/singer/add", method = RequestMethod.POST)
public Object addSinger(HttpServletRequest req){
JSONObject jsonObject = new JSONObject();
String name = req.getParameter("name").trim();
String sex = req.getParameter("sex").trim();
String pic = req.getParameter("pic").trim();
String birth = req.getParameter("birth").trim();
String location = req.getParameter("location").trim();
String introduction = req.getParameter("introduction").trim();
Singer singer = new Singer();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date myBirth = new Date();
try {
myBirth = dateFormat.parse(birth);
}catch (Exception e){
e.printStackTrace();
}
singer.setName(name);
singer.setSex(new Byte(sex));
singer.setPic(pic);
singer.setBirth(myBirth);
singer.setLocation(location);
singer.setIntroduction(introduction);
boolean res = singerService.addSinger(singer);
if (res){
jsonObject.put("code", 1);
jsonObject.put("msg", "添加成功");
return jsonObject;
}else {
jsonObject.put("code", 0);
jsonObject.put("msg", "添加失敗");
return jsonObject;
}
}
// 返回所有歌手
@RequestMapping(value = "/singer", method = RequestMethod.GET)
public Object allSinger(){
return singerService.allSinger();
}
// 根據(jù)歌手名查找歌手
@RequestMapping(value = "/singer/name/detail", method = RequestMethod.GET)
public Object singerOfName(HttpServletRequest req){
String name = req.getParameter("name").trim();
return singerService.singerOfName(name);
}
// 根據(jù)歌手性別查找歌手
@RequestMapping(value = "/singer/sex/detail", method = RequestMethod.GET)
public Object singerOfSex(HttpServletRequest req){
String sex = req.getParameter("sex").trim();
return singerService.singerOfSex(Integer.parseInt(sex));
}
// 刪除歌手
@RequestMapping(value = "/singer/delete", method = RequestMethod.GET)
public Object deleteSinger(HttpServletRequest req){
String id = req.getParameter("id");
return singerService.deleteSinger(Integer.parseInt(id));
}
// 更新歌手信息
@ResponseBody
@RequestMapping(value = "/singer/update", method = RequestMethod.POST)
public Object updateSingerMsg(HttpServletRequest req){
JSONObject jsonObject = new JSONObject();
String id = req.getParameter("id").trim();
String name = req.getParameter("name").trim();
String sex = req.getParameter("sex").trim();
String pic = req.getParameter("pic").trim();
String birth = req.getParameter("birth").trim();
String location = req.getParameter("location").trim();
String introduction = req.getParameter("introduction").trim();
Singer singer = new Singer();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date myBirth = new Date();
try {
myBirth = dateFormat.parse(birth);
}catch (Exception e){
e.printStackTrace();
}
singer.setId(Integer.parseInt(id));
singer.setName(name);
singer.setSex(new Byte(sex));
singer.setPic(pic);
singer.setBirth(myBirth);
singer.setLocation(location);
singer.setIntroduction(introduction);
boolean res = singerService.updateSingerMsg(singer);
if (res){
jsonObject.put("code", 1);
jsonObject.put("msg", "修改成功");
return jsonObject;
}else {
jsonObject.put("code", 0);
jsonObject.put("msg", "修改失敗");
return jsonObject;
}
}
// 更新歌手頭像
@ResponseBody
@RequestMapping(value = "/singer/avatar/update", method = RequestMethod.POST)
public Object updateSingerPic(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id")int id){
JSONObject jsonObject = new JSONObject();
if (avatorFile.isEmpty()) {
jsonObject.put("code", 0);
jsonObject.put("msg", "文件上傳失?。?);
return jsonObject;
}
String fileName = System.currentTimeMillis()+avatorFile.getOriginalFilename();
String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "img" + System.getProperty("file.separator") + "singerPic" ;
File file1 = new File(filePath);
if (!file1.exists()){
file1.mkdir();
}
File dest = new File(filePath + System.getProperty("file.separator") + fileName);
String storeAvatorPath = "/img/singerPic/"+fileName;
try {
avatorFile.transferTo(dest);
Singer singer = new Singer();
singer.setId(id);
singer.setPic(storeAvatorPath);
boolean res = singerService.updateSingerPic(singer);
if (res){
jsonObject.put("code", 1);
jsonObject.put("pic", storeAvatorPath);
jsonObject.put("msg", "上傳成功");
return jsonObject;
}else {
jsonObject.put("code", 0);
jsonObject.put("msg", "上傳失敗");
return jsonObject;
}
}catch (IOException e){
jsonObject.put("code", 0);
jsonObject.put("msg", "上傳失敗" + e.getMessage());
return jsonObject;
}finally {
return jsonObject;
}
}
}
到此這篇關(guān)于Java 實(shí)戰(zhàn)范例之精美網(wǎng)上音樂平臺的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java 音樂平臺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot 動態(tài)配置郵箱發(fā)件人過程解析
這篇文章主要介紹了SpringBoot 動態(tài)配置郵箱發(fā)件人過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
SpringBoot定時(shí)任務(wù)參數(shù)運(yùn)行代碼實(shí)例解析
這篇文章主要介紹了SpringBoot定時(shí)任務(wù)運(yùn)行代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Spring Boot配置Swagger的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Boot配置Swagger的實(shí)現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
Java詳解ScriptEngine接口動態(tài)執(zhí)行JS腳本
ScriptEngine是基本接口,其方法必須在本規(guī)范的每個實(shí)現(xiàn)中完全起作用。這些方法提供基本腳本功能。 寫入這個簡單接口的應(yīng)用程序可以在每個實(shí)現(xiàn)中進(jìn)行最少的修改。 它包括執(zhí)行腳本的方法,以及設(shè)置和獲取值的方法2022-08-08
SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解
這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的下伙伴可以參考一下2022-10-10
mybatis中association標(biāo)簽的使用解讀
這篇文章主要介紹了mybatis中association標(biāo)簽的使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
修改SpringBoot 中MyBatis的mapper.xml文件位置的過程詳解
由于MyBatis默認(rèn)的mapper.xml的掃描位置是resource文件下,但是不可能整個項(xiàng)目的mapper.xml文件都放在resource下,如果文件較少還行,但是如果文件比較多,太麻煩了,所以本文給大家介紹了修改SpringBoot 中MyBatis的mapper.xml文件位置的過程,需要的朋友可以參考下2024-08-08

