【项目功能介绍】
本系统提供了用户登录,注册,修改密码,修改用户信息,首页展示,轮播图展示,网站新闻管理、全部图书展示,图书详情,订阅图书,取消订阅,续借图书,评价图书,用户留言等前台功能、管理员管理,用户管理,网站新闻管理,图书类型管理,图书管理,图书借阅管理,评价管理,留言管理等后台功能。
【运行环境】 Eclipse, IDEA JDK1.8(JDK1.7) Tomcat8(Tomcat7)
【技术栈】 JAVA, JSP, SSM, JQUERY, MYSQL, HTML, CSS, JAVASCRIPT
协同过滤-图书馆图书推荐系统(JAVA,JSP,SSM,MYSQL)(毕业论文12544字,共34页,程序代码,MySQL数据库)
代码下载网址: 链接:https://pan.baidu.com/s/10XOTMRcJC7iarZX7948p6A 提取码:8888
【项目包含内容】
![](https://i-blog.csdnimg.cn/blog_migrate/2ecdf27283f2ee99605fd2a777da5a77.png)
【文档包含内容】
![](https://i-blog.csdnimg.cn/blog_migrate/b3a46474c515efc408e5518795ea2b96.png)
【项目视频教程】
视频教程每个课时包含的内容见下图, 该套教程具有非常高的知识价值 并且 适合以下人群:
A. 想了解并且学习代码实现逻辑的同学
B. 想对代码进行二次开发的同学
C. 在课题设计和毕业设计中,需要对老师问答做到得心应手的同学
D.做论文时,需要技术和业务层面帮助进行文字描述以及绘制流程图(时序图, ER图, 原理图)的同学
![](https://i-blog.csdnimg.cn/blog_migrate/0e6eca10b60c237485a25fdbb35d050e.png)
【部分代码截图】
springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 启用自动扫描 -->
<context:component-scan base-package="com"></context:component-scan>
<!-- 启用springmvc相关Annotation的处理器 -->
<mvc:annotation-driven />
<!-- 采用注释的方式配置bean -->
<context:annotation-config />
<!--proxy-target-class="true"强制使用cglib代理 如果为false则spring会自动选择 -->
<aop:aspectj-autoproxy proxy-target-class="true" />
<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="org.gjt.mm.mysql.Driver" />
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/ssm_tsgtstjxt?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="root" />
</bean>
<!-- 配置mybitasSqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis.xml"></property>
<!-- 扫描entity包 使用别名 -->
<property name="typeAliasesPackage" value="com.entity" />
</bean>
<!--毕设成品下载网址 codebag.cn-->
<!-- 配置扫描DAO接口包,动态实现DAO接口,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<!-- 给出需要扫描DAO接口包 -->
<property name="basePackage" value="com.dao" />
</bean>
<!-- 配置SqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="springTransaction" class="org.springframework.sql.SpringTransaction"></bean>
<!-- 事务配置 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 使用annotation注解方式配置事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 支持上传文件 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 统一编码:项目用于解决中文乱码 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置中央控制器 -->
<!--
说明: 中央控制器在初始化时将解析/WEB-INF/springmvc配置文件; springmvc配置文件的名称命名时:
中央控制器的name-servlet.xml
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
【文档部分截图】
![](https://i-blog.csdnimg.cn/blog_migrate/2e32b8b51e78ed0c224f4db2f4bacf5c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d7f02230207d36d4cf6621c9fd17fa6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d90228265d49c06229ab50cf7c231cc9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e0e1e4636d3b312ab10b0e1ef83984e2.png)
【项目运行截图】
![](https://i-blog.csdnimg.cn/blog_migrate/3e3b1d105d59523c1b2a4d5c09db34cb.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/17ebdee2e0ce59e5c2362eba53ca70f1.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/102887dd777b60f0a6b5dfbdac71f8fd.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/1d6503e5b6d2aa5d560f8479184b546a.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/ce86ad499a8c37d8bc63fbdd8d31289f.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/d9e4a6a1a86cb8728e166169d74992d2.jpeg)