科猫网项目总结(基于SSM框架)
<servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.do</url-pattern> </servlet-mapping>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext( 可以用来获取Spring容器中已初始化的bean)的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value></context-param>
classpath:spring/applicationContext.xml也可以简化为/WEB-INF/applicationContext.xml
<servlet-mapping><servlet-name>springmvc</servlet-name> 需要与上面名称相对应<url-pattern>*.action</url-pattern> 哪些路径要走springmvc </servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file> 指定起始页 </welcome-file-list>
<?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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsd"> <!-- 使用注释方式 --><mvc:annotation-driven/> <!-- 自动扫描Controller--><context:component-scan base-package="controller"/> <!-- 配置一个springMVC视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value= ""/><property name="suffix" value= ".jsp"/></bean> <!-- 返回json的处理 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html; charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html; charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean></list></property></bean> </beans>
xmlns:mvc="http://www.springframework.org/schema/mvc" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
<?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:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.1.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.1.xsd"><context:component-scan base-package="dao"/><context:property-placeholder location="classpath:db.properties" /><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><!-- 初始化连接数量; --><property name="initialSize" value="0" /><!-- 最大并发连接数 --><property name="maxActive" value="20" /><!-- 最大空闲连接数 --><property name="maxIdle" value="20" /><!-- 最小空闲连接数 --><property name="minIdle" value="0" /><!-- 最大等待时长 --><property name="maxWait" value="60000" /><!-- 超过时间限制是否回收 --><property name="removeAbandoned" value="true" /><!-- 超过时间限制多长; --><property name="removeAbandonedTimeout" value="180"/><!-- 数据源连接参数配置; --><property name="username" value="${db.username}"/><property name="url" value="${db.url}"/><property name="password" value="${db.password}"/><property name="driverClassName" value="${db.driver}"/></bean><!-- 配置SessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/> <!-- <property name="mapperLocations" value="classpath:mapper/*.xml" /> --><property name="mapperLocations"><list><value>classpath:config/*.xml</value></list></property></bean><!-- 自动扫描mapper接口,注入sqlSessionFactory --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="mapper"/></bean><!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> --> <!-- 定义切面 --><aop:config><aop:pointcut expression="execution(* dao.*.* (..))" id="txPointCut"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/></aop:config><!-- 声明式事务 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="isValid" propagation="REQUIRED" read-only="true"/><tx:method name="add" propagation="REQUIRED" read-only="true"/></tx:attributes></tx:advice></beans> 1.自动实例化对象包的指定(需要改动) <!-- 开启自动初始化标签:添加Component就可以自动将类初始化 --><context:component-scan base-package="dao"></context:component-scan> 为dao的类前面添加注解: @Component 表示自动创建实例,而controller的类也是需要自动创建实例的,但是其由springMVC来完成了(添加了@Controller) 2.数据库信息文件的指定 <context:property-placeholder location="classpath:db.properties" /> 表示在src目录下的db.properties文件(需要改动) 3.数据源dataSource使用dbcp 4.配置SessionFactory <!-- 配置SessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/> <!-- <property name="mapperLocations" value="classpath:mapper/*.xml" /> --><property name="mapperLocations"><list><value>classpath:config/*.xml</value></list></property></bean>
<!-- 自动扫描mapper接口,注入sqlSessionFactory --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="mapper"/></bean>
<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> --> <!-- 定义切面 --><aop:config><aop:pointcut expression="execution(* dao.*.* (..))" id="txPointCut"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/></aop:config><!-- 声明式事务 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="isValid" propagation="REQUIRED" read-only="true"/><tx:method name="add" propagation="REQUIRED" read-only="true"/></tx:attributes></tx:advice> attributes标签中用REQUIRED,表示运行到isValid方法的时候有事务就运行事务,没事务就创建事务。 4.mybatis-cfg.xml的配置 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><properties resource="db.properties"></properties><!-- 对事务的管理和连接池的配置 --><environments default="development"><environment id="kcat"><transactionManager type="JDBC" /> 事务管理器的类型<dataSource type="POOLED"> 连接池的方式<property name="driver" value="${db.driver}" /><property name="url" value="${db.url}" /><property name="username" value="${db.username}" /><property name="password" value="${db.password}" /></dataSource></environment></environments><!-- mapping 文件路径配置 --><mappers><!--<mapper resource="javastudy/userMapper.xml"/> --><!-- <mapper class="javastudy.CourseMapper"/> --><mapper class="mapper.BangMapper"/></mappers></configuration>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="mapper.BangMapper"><select id="get" resultType="model.Bang">select * from bang</select> </mapper>
package controller;import java.io.IOException; import java.util.ArrayList;import javax.annotation.Resource;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ResponseBody;import dao.BangDAO; import model.Bang;@Controller public class BangController {BangDAO dao;public BangDAO getDao() {return dao;}@Resourcepublic void setDao(BangDAO dao) {this.dao = dao;}@ResponseBodypublic ArrayList<Bang> get() throws IOException{ArrayList<Bang> list=dao.get();return list;}}3.dao包 一般程序都是用模型层与数据库进行交互,而dao层则用于程序对数据库的操作,所以认为dao层属于模型层。 也有这样的看法,把dao层看做MVC框架之外的单独的一层,称之为数据持久层package dao;import java.util.ArrayList;import javax.annotation.Resource;import org.springframework.stereotype.Component;import mapper.BangMapper; import model.Bang;@Component public class BangDAO {BangMapper bangMapper;public BangMapper getBangMapper() {return bangMapper;}@Resourcepublic void setBangMapper(BangMapper bangMapper) {this.bangMapper = bangMapper;}public ArrayList<Bang> get(){ArrayList<Bang> list=bangMapper.get();return list;} }4.mapper包 mapper包用来放置DAO接口 package mapper;import java.util.ArrayList;import model.Bang;public interface BangMapper {public ArrayList<Bang> get(); } 5.model包 放置模型类,可以看做表 package model;public class Bang {private int id;private String videoName;private int videoType;private String videoUrl;private String videoImage;private String videoExplain;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getVideoName() {return videoName;}public void setVideoName(String videoName) {this.videoName = videoName;}public int getVideoType() {return videoType;}public void setVideoType(int videoType) {this.videoType = videoType;}public String getVideoUrl() {return videoUrl;}public void setVideoUrl(String videoUrl) {this.videoUrl = videoUrl;}public String getVideoImage() {return videoImage;}public void setVideoImage(String videoImage) {this.videoImage = videoImage;}public String getVideoExplain() {return videoExplain;}public void setVideoExplain(String videoExplain) {this.videoExplain = videoExplain;}@Overridepublic String toString() {return "Bang [id=" + id + ", videoName=" + videoName + ", videoType=" + videoType + ", videoUrl=" + videoUrl+ ", videoImage=" + videoImage + ", videoExplain=" + videoExplain + "]";}}
package utility;import java.io.IOException; import java.io.InputStream;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtils {public static SqlSession openSession() throws IOException{String resource = "mybatis-cfg.xml";InputStream in = Resources.getResourceAsStream(resource);SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in,"kcat"); //这里要对应mybatis-cfg.xml的environment idreturn sessionFactory.openSession();} }
转载于:https://www.cnblogs.com/pengjunhao/p/7193770.html
科猫网项目总结(基于SSM框架)相关推荐
- JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(文章最后有源码)
JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(附部分源码) 一.项目背景 项目演示 二.项目介绍 三.涉及技术 总结 源码地址 一.项目背景 "世上本来没有CRM,大家的生 ...
- Java项目:基于ssm框架个人博客系统多用户(计算机毕业设计)
本系统实现个人博客的主要基本功能有主界面,用户注册,用户登录,发表文章,浏览文章,发表评论等.这里主要是区分了个人博客的注册用户和游客.注册用户,可以在任何时候写下自己的主张,记录下自己的点点滴滴.而 ...
- 基于SSM框架的旅游门户网站
下载地址:https://download.csdn.net/download/a13689028602/20681462 项目介绍 基于SSM框架的旅游门户网站 系统说明 项目背景 旅游业作为一个快 ...
- 嘉明SSM学习之基于SSM框架的学生信息管理系统
项目的github:https://github.com/zjm-cityboy/sims-GitHub.git 可以的话点个小星星嘿嘿 1.项目介绍 1.1.项目环境配置 操作系统:Windows1 ...
- 基于ssm框架的汽车出租管理系统源码
项目介绍: 基于ssm框架的汽车出租管理系统源码 高清视频演示: https://www.bilibili.com/video/BV1TY411u7X2/ 下载地址: https://download ...
- 杨校老师项目之基于SSM大学生创新创业项目管理系统
1. 获取代码: 自助下载获取:https://download.csdn.net/download/kese7952/85357941 2. 项目描述 基于SSM框架开发的大学生创新创业项目管理平台 ...
- 基于SSM框架的学籍管理系统
下载地址:https://download.csdn.net/download/ouyangxiaobai123/20722172 项目介绍 基于SSM框架的学籍管理系统 系统说明 基于SSM框架的学 ...
- 基于SSM框架的个性化眼镜线上销售系统+论文第三稿+已降重+包安装配置
项目名称 基于SSM框架的个性化眼镜线上销售系统 视频效果 基于SSM框架的个性化眼镜线上销售系统 项目地址: https://download.csdn.net/download/m0_721809 ...
- 基于SSM框架图书管理系统开发与设计(附源码资料)-毕业设计
文章目录 1. 适用人群 2. 你将收获 3.项目简介 4.技术实现 5.系统功能 5.1.管理员身份登录 5.1.1.登录 5.1.2.管理员登录首页 5.1.3.借阅管理 5.1.4.图书管理 5 ...
最新文章
- 局域网共享问题解决方法!
- (一)TestNG测试框架之HelloWorld入门
- MOSS2007 webcast系列(一)
- 【css】我的 css 框架——base.css
- java8 streams_使用Java 8 Streams进行编程对算法性能的影响
- python之os、sys和random模块
- 测试面试话题4: 如何制定测试计划
- 湖南师大工学院计算机,张连明-湖南师范大学信息科学与工程学院
- uva 1045(二分图最大权匹配)
- mac 2018 idea 无法 import导入或打开maven 项目
- java Process在windows的使用汇总(转)
- python 如果你的年龄大于18_02Python基础
- 数据清洗 Chapter01 | 数据清洗概况
- C语言99乘法表,求指点
- 2021-视频监控中的多目标跟踪综述
- 简单方法去除视频水印
- Codeforces 364D Ghd(随机化)
- ide是什么,IDE是什么,ide,IDE
- 纳秒级分布式无锁限流插件 Current-Limiting
- 推荐闪电王子和非洲王子鱼
热门文章
- 流利阅读12.18 Coffee or tea? The answer might be in your genes
- spark学习基础篇1--spark概述与入门
- ]播放电影文件背景音乐声音正常对白声音小的问题
- 共享屏幕,录屏的方法
- xaxis python_Python中的分组Xaxis可变性图
- 定积分的基本性质6 积分第一中值定理
- matlab三相电路基波图形,非正弦稳态对称三相电路如图a所示。A相电源电压为,其中基波角频率为ω1=1rad/s。负载参数为R=...
- 如何做人群画像 如何做用户画像
- php提交按钮快捷键,直接打印快捷键
- 什么是区块链----概念