开源-基于SSM+Jsp的生活分享系统!

4/29/2023

最近帮小伙伴,开发一个系统。由于要的比较着急。就连夜赶了。

赶出来后,小伙伴觉得不错,又给了一些额外的费用。给的还很高!

征得小伙伴同意后,源码开源给大家。

# 文章目录

# 一,运行环境:

开发系统:Windows10

JDK版本:Java JDK1.8

开发工具:idea

数据库版本:mysql5

数据库可视化工具:navicat for mysql

服务器:apache tomcat 7

其他工具:谷歌浏览器控制台调整网页布局 Postman接口工具进行接口测试

# 二,功能介绍:

1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作

2.生活分享笔记管理:分享笔记列表的展示、添加、修改、删除操作

3.生活笔记详情管理:生活笔记详情列表的查看、添加、删除等操作

4.管理员信息管理:管理员信息的查看、修改

5.公告信息管理:公告信息的查看、添加、修改、删除操作

6.用户模块管理:用户列表查询、添加、删除、

7.收藏模块管理:用户收藏列表、取消收藏、收藏

8.关注用户模块管理:关注用户查询、添加关注、取消关注

9.用户评论模块管理:用户评论查询、添加、删除

10.注销退出登录管理

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。

Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。

# 三,系统演示:

微信图片_20230427153510

c1c8a2ded4114c8c90d964f70bf5044f

0d71227b7b544b189ce6fb97bc120217

e365a086e3bf4e6b941e8ef55056ba38

498b70da93974312be12966c6d815bed

6fb95a31ba71427499c7d2ed01698e57

d98a68ba60b94cbeb81c8b0ea2d761cf

# 四,系统核心代码:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer adminId; // 管理员Id
@Column(length=200)
private String userName;  // 用户名
@Column(length=200)
private String password;  // 密码
@Column(length=200)
private String trueName;  // 真实姓名
@Column(length=200)
private String headPortrait;  // 头像
@Column(length=50)
private String sex;  // 性别
@Column(length=500)
private String signature;  // 备注
@Column(length=200)
private String phone;  // 电话 

@Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Integer articleId; // 文章Id
 
 @Column(length = 200)
 private String title; // 文章标题
 
 @Lob
 @Column(columnDefinition = "TEXT")
 private String content; // 文章内容
 
 @Transient
 private String contentNoTag; // 博客内容 无网页标签 Lucene分词用到
 
 private Date publishDate; // 发布日期
 
 @Column(length = 200)
 private String author; // 作者
 
 @ManyToOne
 @JoinColumn(name = "classifyId")
 private Classify classify; // 文章类别
 
 private Integer click; // 点击数
 
 private Integer commentNum; // 评论数

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer bloggerId; // 博主Id
@Column(length=200)
private String nickName;  // 昵称
@Column(length=200)
private String headPortrait;  // 头像
@Column(length=500)
private String motto;  // 座右铭
@Column(length=500)
private String signature;  // 个性签名
@Column(length=200)
private String site;  // 地址 

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer commentId; // 评论Id
@ManyToOne
@JoinColumn(name="articleId")
private Article article; // 文章Id
@ManyToOne
@JoinColumn(name="userId")
private User user; // 用户Id
@Column(length=500)
private String content; // 评论内容
private Date commentDate; // 评论时间

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer noticeId;  // 公告Id
@Column(length=500)
private String content;  // 公告内容
private Date publishDate;  // 发布日期
@Column(length=200)
private Integer grade;  // 等级  0 重要  1 一般

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer replyId; // 回复Id
@ManyToOne
@JoinColumn(name="commentId")
private Comment comment; // 评论Id
@ManyToOne
@JoinColumn(name="userId")
private User user; // 用户Id
@Column(length=500)
private String content; // 回复内容
private Date replyDate; // 回复时间

**#数据源的地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3307/db_fruit_vegetable_shop?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=crit@2019
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.continue-on-error=false
spring.datasource.test-while-idle=true
#获取连接时候验证,会影响性能
spring.datasource.test-on-borrow=false
#在连接归还到连接池时是否测试该连接
spring.datasource.test-on-return=false
spring.datasource.validation-query=SELECT 1 FROM DUAL
#空闲连接回收的时间间隔,与test-while-idle一起使用,设置5分钟
spring.datasource.time-between-eviction-runs-millis=300000
#连接池空闲连接的有效时间 ,设置30分钟
spring.datasource.min-evictable-idle-time-millis=1800000
spring.datasource.initial-size=5
#指定连接池中最大的活跃连接数.
spring.datasource.max-active=50
#指定连接池等待连接返回的最大等待时间,毫秒单位.
spring.datasource.max-wait=60000
#指定必须保持连接的最小值
spring.datasource.min-idle=5
#热部署生效
spring.devtools.restart.enabled=true
#mybatis驼峰匹配开启
mybatis.configuration.map-underscore-to-camel-case=true
# 控制台日志配置
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mapper文件扫描路径
mybatis.mapper-locations=classpath*:mappers/admin/*.xml,classpath*:mappers/home/*.xml,classpath*:mappers/common/*.xml
#mail配置
spring.mail.host=smtp.163.com
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
spring.mail.username=15959100218@163.com
spring.mail.password=LBWCLXTCZNGUMVMZ
spring.mail.test-connection=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#redis配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.database=0
#图片上传设置
yjq.upload.photo.sufix=.jpg,.png,.gif,.jpeg
#1024KB
yjq.upload.photo.maxsize=1024
#200MB = 204800KB
yjq.upload.attachment.maxsize=204800
yjq.upload.photo.path=D:/IDEA_project/FruitAndVegetableShop/src/main/resources/upload/photo/
yjq.upload.attachment.path=D:/IDEA_project/FruitAndVegetableShop/src/main/resources/upload/attachment/
**

# 五,源码获取:

点击文章最后弹出的公众号【springmeng】,回复【生活分享】

Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。

Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。

Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。

Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。

后面Java的框架都是基于Spring进行开发的,所以Spring一定要搞好。

我是程序员小孟,欢迎点赞、转发、评论关注。