SpringBoot-NewsSystem新闻发布系统
java 10.0.2 2018-07-17
mysql 5.7.22
Apache Maven 3.6.0
ROLE_USER:普通用户,ROLE_USER_S:二级用户,ROLE_ADMIN:管理员
普通用户:只能浏览和改自己的密码
二级用户:可以发新闻,相当于记者(需要审核)
管理员:可以增删改查新闻,用户,更改用户权限最高只能改为二级用户
SpringBoot
使用SpringSecurity配置来进行权限控制
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
数据库使用Jpa来操纵
public interface FileRepository extends JpaRepository<File,Long>{
}
前端使用了Bootstrap框架,富文本编辑器使用百度的ueditor,使用模版引擎thymeleaf。
springboot+ueditor参考了 参考文章
部分截图:
新闻首页1 用户信息修改 新闻首页2 后台管理系统 文章管理
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<title th:text="鸡天新闻-首页"></title>
<head th:replace="~{fragments/header :: header}" >
</head>
<style type="text/css">
*{
font-family: 微软雅黑;
}
</style>
<body>
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="panel panel-warning ">
<div class="panel-heading">
<h5>国 内 新 闻<span class="badge badge-danger">hot</span></h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list1}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>国 际 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list2}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="panel panel-warning ">
<div class="panel-heading">
<h5>本 地 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list3}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>娱 乐 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list4}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-danger ">
<div class="panel-heading">
<h5>政 要 新 闻</h5>
</div>
<div class="panel-body">
<div class="list-group" th:each="news:${list5}">
<a th:href="@{'~/news/detail/'+${news.getnewsId()}}" class="list-group-item">
<h6 th:text="${news.getnewsTitle()}"></h6>
<p th:text="${news.getnewsWord()}"></p>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<footer th:replace="~{fragments/footer :: footer}">...</footer>
</html>
来源:https://blog.csdn.net/QQ346127357/article/details/100980888