# 技术栈
前端:HTML、CSS、JS、BootStrap
后端:Spring,SpringMVC,Mybatis,SpringBoot
数据库:MySQL,Druid连接池
其他:Maven、Thymeleaf
# 简介
此系统是基于Java EE的校园新闻平台。在后端方面选择以Spring Boot 为主整合Spring、Spring MVC和MyBatis的结构,实现了后台对整个系统的全方位管理,包括普通用户的注册、登录,新闻资讯信息的编辑、修改与发布,以及管理员对新闻资讯信息监管、完善与审核等一系列操作。在数据库方面选择MySQL作为数据库,使用MyBatis + Druid简化多源数据库的配置以及数据库操作。在前台方面,为了Web页面的展示的更加充分,采用基于HTML5+CSS3技术的Bootstrap框架和SpringBoot推荐的Thymeleaf模板引擎,使得Web开发更加方便快捷,实现了普通用户的注册、登录界面,以及快速浏览、功能分类、信息交互等功能。
# 环境搭建
第一步:新建Spring项目
选择Spring initialize,点击Next,输入公司名+项目名生成包名,点击Next,添加依赖,连续点击Next即可。
第二步:导入额外依赖
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 版本仲裁-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目信息-->
<groupId>com.tyust</groupId>
<artifactId>testdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>testdemo</name>
<description>Demo project for Spring Boot</description>
<!-- JDK版本-->
<properties>
<!-- 编码信息-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!--切换thymeleaf版本-->
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
<!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本 -->
<!-- thymeleaf2 layout1-->
<thymeleaf-layout-dialect.version>2.4.1</thymeleaf-layout-dialect.version>
</properties>
<dependencies>
<!--web 模块的快速开发-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--thymeleaf默认 2.1.6版本-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--jquery-->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
<!--bootstrap-->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.0.0</version>
</dependency>
<!-- jdbc启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--引入druid-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
</dependency>
<!--test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 这个插件,可以将应用打包成一个可执行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
```
第三步:配置数据库连接池
```yaml
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/newsplatform?characterEncoding=utf-8&serverTimezone=GMT%2B8
type: com.alibaba.druid.pool.DruidDataSource
# 数据源其他配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j2
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
```
第四步:整合MyBatis
首先使用MyBatis的逆向工程生成相应的Mappar,注意实体类的命名规则,要和数据库一一对应。
在配置文件中配置MyBatis
```YAML
mybatis:
# 指定全局配置文件位置
config-location: classpath:mybatis/mybatis-config.xml
# 指定sql映射文件位置
mapper-locations: classpath:mybatis/mapper/*.xml
```
在Mapper类上面加@Repository注解
在主类上面加@MapperScan(value = "xxx")注解,xxx是mapper的包名
第五步:其他配置
```properties
//环境路径
server.servlet.context-path=/schoolnews
spring.mvc.hiddenmethod.filter.enabled=true
//时间格式
spring.mvc.date-format=yyyy-MM-dd
//国际化消息
spring.messages.basename=i18n.message.login,i18n.message.signup
//thymeleaf缓存,热部署
spring.thymeleaf.cache=false
```
# 功能
1. 主页
2. 登录以及注册
3. 普通用户对新闻咨询的编辑、发布和删除
4. 普通用户对新闻资讯的浏览以及点赞
5. 普通用户对新闻资讯的按分类浏览
6. 普通用户对个人信息的更改
7. 管理员对新闻的审核发布和撤销取消发布
# 展示
1. 主页
使用BootStrap的框架,有左边栏和上边栏,主页大部分是文字,有一个轮播图是使用JS实现的。
左边栏和上边栏:bar.html和baradmin.html。处理的不是很好,代码复用性不高,有普通bar和管理员bar,其实差距不大,有待优化。
2. 登录以及注册
虽然登录界面只是一个非常简单的表单,但是为了让程序不出问题,在后台需要进行繁杂的操作。其中包括控制层的对用户名密码的校验,如果用户名不存在、密码错误等,根据情况返回提示。同时为了减少表单重复提交问题和越权进入主界面的问题,为登录加入了拦截器和相关配置。
并且通过默认管理员账号密码来实现�
Java实现校园新闻管理平台系统【优质毕业设计、课程设计项目】
版权申诉
5星 · 超过95%的资源 73 浏览量
2023-04-23
16:55:55
上传
评论 2
收藏 1.71MB ZIP 举报
不脱发的程序猿
- 粉丝: 24w+
- 资源: 5804