——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SpringBoot简单博客管理系统(java+springboot+html+maven+mysql)
项目介绍
本项目为前后台管理系统,包括博主与游客两种角色; 博主角色包含以下功能: 博主登录,发博客,博主可以删除博客等功能。 游客角色包含以下功能: 首页,查看博客,添加评论,搜索-标签筛选等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7版本;
技术栈
后端:SpringBoot
前端:HTML+CSS+JavaScript+jsp
使用说明
运行项目,输入localhost:8080/ 登录
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
public interface BlogDao extends BaseDao<Blog> {
} package com.ibeetl.blog.dao;
public interface UserDao extends BaseDao<User> {
} <% layout("/common/layout.html",{title:"首页"}){ %>
<% for(var i = 0;i< page.list.~size;i=i+2){%> <div class="row"> <div class="col-md-6 col-sm-6"> <article class=" blog-teaser"> <header> <img src="${page.list[i].img}" alt=""> <h3><a href="${ctxPath}/detail?id=${page.list[i].id!}"> <% var title = page.list[i].title;
if(isNotEmpty(title)&&strutil.length(title)>11){%> ${strutil.subStringTo(title,0,11)}... <%}else{%> ${title!"无标题"} <%}%> </a></h3> <span class="meta">${@com.ibeetl.blog.function.PrintTimeUtil.printTime(page.list[i].createTime,"yyyy-MM-dd HH:mm:ss")}</span> <hr> </header>
</article> </div> <%if((i+1) < page.list.~size){%> <div class="col-md-6 col-sm-6"> <article class=" blog-teaser"> <header> <img src="${page.list[i+1].img}" alt=""> <h3><a href="${ctxPath}/detail?id=${page.list[i].id!}"> <% title = page.list[i+1].title;
if(isNotEmpty(title)&&strutil.length(title)>11){%>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| private Long id; private Integer deleteFlag; private String password; private String userName; private Date createTime; private Date updateTime;
public User() { }
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public Integer getDeleteFlag() { return deleteFlag; }
public void setDeleteFlag(Integer deleteFlag) { this.deleteFlag = deleteFlag; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getUserName() { return userName; }
public void setUserName(String userName) { this.userName = userName; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| * @param pageSize * @return */ PageQuery<Message> pageMsg(Long blogId, long pageNumber, long pageSize);
Blog getBlogById(Long blogId);
void saveMessage(Message message);
void saveBlog(Blog blog);
List<String> listCategory();
User login(String userName, String password); void deleteBlog(long id); } package com.ibeetl.blog.config;
@Configuration public class DBConfig {
@Bean(name = "datasource") public DataSource datasource(Environment env) { HikariDataSource ds = new HikariDataSource(); ds.setJdbcUrl(env.getProperty("spring.datasource.url")); ds.setUsername(env.getProperty("spring.datasource.username")); ds.setPassword(env.getProperty("spring.datasource.password")); ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); return ds; } } package com.ibeetl.blog.function;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| public void setId(Long id) { this.id = id; }
public Boolean getDeleteFlag() { return deleteFlag; }
public void setDeleteFlag(Boolean deleteFlag) { this.deleteFlag = deleteFlag; }
public String getContent() { return content; }
public void setContent(String content) { this.content = content; }
public String getNickName() { return nickName; }
public void setNickName(String nickName) { this.nickName = nickName; }
public Date getCreateTime() { return createTime; }
public void setCreateTime(Date createTime) { this.createTime = createTime; }
public Date getUpdateTime() { return updateTime; }
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
public Long getBlogId() { return blogId; }
public void setBlogId(Long blogId) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| </article> </div> <%}%> </div>
<%}%>
<#page page="${page}" condition='${"&keyword="+keyword!+"&category="+category!}'/> <% } %>
<!DOCTYPE html> <html> <head> <title>登录</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="keywords" content="Flat Dark Web Login Form Responsive Templates, Iphone Widget Template, Smartphone login forms,Login form, Widget Template, Responsive Templates, a Ipad 404 Templates, Flat Responsive Templates" /> <link href="${ctxPath}/css/login_style.css" rel='stylesheet' type='text/css' /> </head> <body> <script>$(document).ready(function(c) { $('.close').on('click', function(c){ $('.login-form').fadeOut('slow', function(c){ $('.login-form').remove(); }); }); }); </script> <h1>登录</h1> <div class="login-form"> <div class="close" onclick="location.href='/'"> </div> <div class="head-info"> <label class="lbl-1"> </label> <label class="lbl-2"> </label> <label class="lbl-3"> </label> </div> <div class="clear"> </div> <div class="avtar"> <img src="${ctxPath}/img/avtar.png" /> </div> <form action="/login" method="get"> <input type="text" class="text" placeholder="用户名" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Username';}" name="userName"> <div class="key"> <input type="password" placeholder="密码" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Password';}" name="password"> </div>
<div class="signin"> <input type="submit" value="登录">
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| }
@GetMapping("/test") public String test(HttpServletRequest request) { return "test.html"; } } package com.ibeetl.blog.service.impl;
@Service public class BlogServiceImpl implements BlogService { @Autowired private BlogDao blogDao;
@Autowired private MessageDao messageDao;
@Autowired private UserDao userDao;
@Override public PageQuery<Blog> pageBlog(long pageNumber, long pageSize, String keyword, String category) { LambdaQuery<Blog> query = blogDao.createLambdaQuery() .andEq(Blog::getDeleteFlag, false); if (!StringUtils.isEmpty(keyword)) { query.andLike(Blog::getTitle, "%" + keyword.trim() + "%"); } if (!StringUtils.isEmpty(category)) { query.andEq(Blog::getCategory, category); } if (pageNumber > 0 && pageSize > 0) { return query.desc(Blog::getCreateTime).page(pageNumber, pageSize); }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=261422322105200kg
https://javayms.pages.dev?id=261422322105200kg