目录

  • 构建项目(IDEA版本)
  • 环境搭建
  • Spring框架搭建
  • SpringMVC框架搭建
  • Spring整合SpringMVC
  • Mybatis框架搭建
  • Spring整合Mybatis
  • Spring事务管理

构建项目(IDEA版本)

  1. 点击 create new Project
  2. 选择Maven工程,并点击Create from archetype,选择webapp工程
  3. 解决创建项目过慢的问题(加入新的键值对archetypeCatalog,internal)
  4. 最后一步finish,创建完成

环境搭建

  1. 创建JAVA文件夹和resources文件夹,并且将两个文件夹变成前者source root,后者Resources root
  2. 注入依赖
<properties><spring.version>5.1.6.RELEASE</spring.version><slf4j.version>1.7.5</slf4j.version><log4j.version>1.2.12</log4j.version><mysql.version>5.1.6</mysql.version><mybatis.version>3.4.5</mybatis.version></properties>
<dependencies><!-- spring --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version><type>jar</type><scope>compile</scope></dependency></dependencies>
  1. 创建domain层实体类
public class Account implements Serializable {private Integer id;private String name;private Double money;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getMoney() {return money;}public void setMoney(Double money) {this.money = money;}@Overridepublic String toString() {return "Account{" +"id=" + id +", name='" + name + '\'' +", money=" + money +'}';}
}
  1. 创建dao层持久层接口
public interface AccountDao {public void saveAccount(Account account);public List<Account> findAll();
}
  1. 创建service层业务层接口
public interface AccountService {public void saveAccount(Account account);public List<Account> findAll();
}

Spring框架搭建

  1. 配置applicationContext.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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"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.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让SpringMVC框架
去管理 --><context:component-scan base-package="com.lwb"><!-- 配置要忽略的注解 --><context:exclude-filter type="annotation"  expression="org.springframework.stereotype.Controller"/></context:component-scan>
</beans>
  1. 实现service接口,并写上接口
@Service("accountService")
public class AccountServiceImpl implements AccountService {public void saveAccount(Account account) {System.out.println("保存操作");}public List<Account> findAll() {System.out.println("查询操作");return null;}
}

SpringMVC框架搭建

  1. 配置前端控制器和中文乱码问题
<!-- 配置前端控制器:服务器启动必须加载,需要加载springmvc.xml配置文件 --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数,创建完DispatcherServlet对象,加载springmvc.xml配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><!-- 服务器启动的时候,让DispatcherServlet对象创建 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 配置解决中文乱码的过滤器 --><filter><filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
  1. 配置springMVC.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描controller的注解,别的不扫描 --><context:component-scan base-package="com.lwb"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter></context:component-scan><!-- 配置视图解析器 --><bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- JSP文件所在的目录 --><property name="prefix" value="/WEB-INF/pages/" /><!-- 文件的后缀名 --><property name="suffix" value=".jsp" /></bean><!-- 设置静态资源不过滤 --><mvc:resources location="/css/" mapping="/css/**" /><mvc:resources location="/images/" mapping="/images/**" /><mvc:resources location="/js/" mapping="/js/**" /><!-- 开启对SpringMVC注解的支持 --><mvc:annotation-driven />
</beans>
  1. 创建Controller类,并配上注解
@Controller
@RequestMapping("/AccountController")
public class AccountController {@RequestMapping("/findAll")public String findAll(){System.out.println("配置成功");return "list";}}

Spring整合SpringMVC

  1. 目的:在controller中能成功的调用service对象中的方法。
  2. 在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件)。
  <!-- 配置Spring的监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置Spring的监听器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>
  1. 在controller中注入service对象
    @Autowiredprivate AccountService accountService;

Mybatis框架搭建

  1. 配置SqlMapperConfig.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><!--搭建环境--><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///spring3"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!--配置mapper--><mappers><!--<mapper class="com.lwb.dao.AccountDao"></mapper>--><package name="com.lwb.dao"></package></mappers>
</configuration>
  1. 在Dao接口上配置注解
    @Insert("insert into account(name,money) values(#{name},#{money})")public void saveAccount(Account account);@Select("select * from account")public List<Account> findAll();

Spring整合Mybatis

  1. 把SqlMapConfig.xml配置文件中的内容配置到applicationContext.xml配置文件中
   <!--数据源--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql:///spring" /><property name="username" value="root" /><property name="password" value="123456" /></bean><!--SqlSessionFactory工厂--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean><!--配置扫描的包--><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lwb.dao"/></bean>
  1. 在AccountDao接口中添加@Repository注解
@Repository
public interface AccountDao {
  1. 在service中注入dao对象
    @Autowiredprivate AccountDao accountDao;public List<Account> findAll() {System.out.println("查询操作");return accountDao.findAll();}

Spring事务管理

    <!--配置事务管理--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置事务通知--><tx:advice id="txadvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="*" propagation="REQUIRED" read-only="false"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice><!--配置切入点--><aop:config><aop:pointcut id="pt1" expression="execution(* com.lwb.service.*Impl.*(..))"/><aop:advisor pointcut-ref="pt1" advice-ref="txadvice"/></aop:config>

Spring框架学习(十)SSM框架整合相关推荐

  1. 视频教程-spring+springMVC+mybatis(ssm框架)在线考试系统实战开发教程-Java

    spring+springMVC+mybatis(ssm框架)在线考试系统实战开发教程 软件工程硕士毕业,目前就职于上海电信研究院,有三年Java开发经验,五年PHP开发经验. 李礼强 ¥368.00 ...

  2. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  3. PyTorch框架学习十八——Layer Normalization、Instance Normalization、Group Normalization

    PyTorch框架学习十八--Layer Normalization.Instance Normalization.Group Normalization 一.为什么要标准化? 二.BN.LN.IN. ...

  4. PyTorch框架学习十六——正则化与Dropout

    PyTorch框架学习十六--正则化与Dropout 一.泛化误差 二.L2正则化与权值衰减 三.正则化之Dropout 补充: 这次笔记主要关注防止模型过拟合的两种方法:正则化与Dropout. 一 ...

  5. PyTorch框架学习十五——可视化工具TensorBoard

    PyTorch框架学习十五--可视化工具TensorBoard 一.TensorBoard简介 二.TensorBoard安装及测试 三.TensorBoard的使用 1.add_scalar() 2 ...

  6. PyTorch框架学习十四——学习率调整策略

    PyTorch框架学习十四--学习率调整策略 一._LRScheduler类 二.六种常见的学习率调整策略 1.StepLR 2.MultiStepLR 3.ExponentialLR 4.Cosin ...

  7. PyTorch框架学习十二——损失函数

    PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...

  8. PyTorch框架学习十——基础网络层(卷积、转置卷积、池化、反池化、线性、激活函数)

    PyTorch框架学习十--基础网络层(卷积.转置卷积.池化.反池化.线性.激活函数) 一.卷积层 二.转置卷积层 三.池化层 1.最大池化nn.MaxPool2d 2.平均池化nn.AvgPool2 ...

  9. 十二.激光SLAM框架学习之livox-loam框架安装和跑数据集

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  10. 十.激光SLAM框架学习之LeGO-LOAM框架---算法原理和改进、项目工程代码

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

最新文章

  1. matlab定子磁链观测器,一种基于二阶广义积分器的永磁同步电机定子磁链观测方法...
  2. python处理流程-在python异步协程中处理流程分析(一)
  3. git删除远程已经没有的分支
  4. 超好用!5款开源的移动自动化测试工具
  5. 积木赛尔号机器人_赛尔号:谱尼三次败北,经历过被吊打、封印,一次比一次惨...
  6. java web程序 上机考试做一个登陆注册程序
  7. Re: 社团改革还让不让人活了?
  8. 探秘 Dubbo 的度量统计基础设施 - Dubbo Metrics
  9. 中国现磨咖啡行业白皮书
  10. 春节临近|传统彩色手绘年画素材,满满东方韵味
  11. 测试基础-06-测试计划编写
  12. iOS-各种报错,各种error
  13. 关于Jedis和lettuce以及springDataRedis的一些区别
  14. 最近使用VirtualBox安装虚拟机,频繁崩溃。是不是有什么隐藏限制?
  15. html 模拟鼠标移动,如何在网页端用js模拟鼠标移动点击等操作
  16. python ttk style,如何改变ttk.progressBar颜色在python
  17. Winedt/CTeX/LaTeX编辑器显示行号
  18. 阿ken的HTML、CSS的学习笔记_CSS3选择器(笔记四)
  19. 在html5页面中添加canvas,HTML页面中添加Canvas标签示例
  20. matlab怎么取小数点后十五位,matlab 如何取出小数点后第几位数

热门文章

  1. ApacheCN 翻译/校对/笔记整理活动进度公告 2019.10.11
  2. 查看动态库.dll是多少位的
  3. win7修复计算机无法修复工具栏,win7任务栏消失怎么办?win7任务栏消失的两种恢复方法...
  4. shell脚本大全-个人收藏
  5. 不能创建对象qmdispatch_关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法...
  6. Android Toast的立即取消与显示
  7. SSH框架之文件上传
  8. 编译全志A31出现的错误
  9. 视频修复工具修复损坏avi视频文件
  10. 利用python暴力破解rar压缩文件密码