一、SSM整合流程
1.创建工程
(1)补结构
(2)打war包、导坐标
(3)Tomcat插件
2.SSM整合
(1)Spring
SpringConfig配置类
@Configuration @ComponentScan("com.service") @PropertySource("classpath:jdbc.properties") @Import({JdbcConfig.class,MybatisConfig.class}) public class SpringConfig { }
(2)Mybatis
1)jdbc.properties文件
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db1?useSSL=false jdbc.username=**** jdbc.password=****
2)JdbcConfig
public class JdbcConfig { @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean public DataSource dataSource(){ DruidDataSource ds=new DruidDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); return ds; } }
3)MyBatisConfig
public class MybatisConfig { @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) { SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean(); ssfb.setDataSource(dataSource); return ssfb; } @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer msc = new MapperScannerConfigurer(); msc.setBasePackage("com.dao"); return msc; } }
(3)SpringMVC
1)ServletConfig
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class[]{SpringConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{SpringMvcConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } }
2)SpringMvcConfig
@Configuration @ComponentScan("com.controller") @EnableWebMvc public class SpringMvcConfig { }
3.功能模块
(1)数据库表与pojo
(2)dao层
(3)service层
1)XXXService
2)XXXServiceImpl
(4)web层(controller)
二、接口测试
1.测试业务层接口
用Junit测试。
(1)Spring整合Junit
(2)测试业务层接口
2.测试表现层接口
用PostMan测试。
三、配置Spring事务
1.开启事务
2.创建事务管理器Bean
因为事务管理器利用DataSource对象控制事务,所以把事务管理器写在JdbcConfig中。
3.添加Spring事务管理
给业务层所有的方法都添加事务:
四、web层数据封装
1.创建数据返回结果类
2.创建结果状态码集
【tips】Result类和Code类一般放在controller包下。
3.修改Controller
修改Controller中返回数据的格式,统一返回Result对象: