歡迎大家回到《Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實(shí)現(xiàn),如果您對(duì)Maven還很陌生,請(qǐng)移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《Rest風(fēng)格簡介與RESTful入門》
前面我們已經(jīng)把Mybatis、Spring和SpringMVC三個(gè)框架進(jìn)行了學(xué)習(xí),今天主要的內(nèi)容就是把這三個(gè)框架整合在一起完成我們的業(yè)務(wù)功能開發(fā),具體如何來整合,我們一步步來學(xué)習(xí)。
1 流程分析
(1) 創(chuàng)建工程
- 創(chuàng)建一個(gè)Maven的web工程
- pom.xml添加SSM需要的依賴jar包
- 編寫Web項(xiàng)目的入口配置類,實(shí)現(xiàn)AbstractAnnotationConfigDispatcherServletInitializer重寫以下方法
- getRootConfigClasses() :返回Spring的配置類->需要SpringConfig配置類
- getServletConfigClasses() :返回SpringMVC的配置類->需要SpringMvcConfig配置類
- getServletMappings() : 設(shè)置SpringMVC請(qǐng)求攔截路徑規(guī)則
- getServletFilters() :設(shè)置過濾器,解決POST請(qǐng)求中文亂碼問題
(2)SSM整合[重點(diǎn)是各個(gè)配置的編寫]
- SpringConfig
- 標(biāo)識(shí)該類為配置類 @Configuration
- 掃描Service所在的包 @ComponentScan
- 在Service層要管理事務(wù) @EnableTransactionManagement
- 讀取外部的properties配置文件 @PropertySource
- 整合Mybatis需要引入Mybatis相關(guān)配置類 @Import
- 第三方數(shù)據(jù)源配置類 JdbcConfig
- 構(gòu)建DataSource數(shù)據(jù)源,DruidDataSouroce,需要注入數(shù)據(jù)庫連接四要素,@Bean @Value
- 構(gòu)建平臺(tái)事務(wù)管理器,DataSourceTransactionManager,@Bean
- Mybatis配置類 MybatisConfig
- 構(gòu)建SqlSessionFactoryBean并設(shè)置別名掃描與數(shù)據(jù)源,@Bean
- 構(gòu)建MapperScannerConfigurer并設(shè)置DAO層的包掃描
- 第三方數(shù)據(jù)源配置類 JdbcConfig
- SpringMvcConfig
- 標(biāo)識(shí)該類為配置類 @Configuration
- 掃描Controller所在的包 @ComponentScan
- 開啟SpringMVC注解支持 @EnableWebMvc
(3)功能模塊[與具體的業(yè)務(wù)模塊有關(guān)]
- 創(chuàng)建數(shù)據(jù)庫表
- 根據(jù)數(shù)據(jù)庫表創(chuàng)建對(duì)應(yīng)的模型類
- 通過Dao層完成數(shù)據(jù)庫表的增刪改查(接口+自動(dòng)代理)
- 編寫Service層[Service接口+實(shí)現(xiàn)類]
- @Service
- @Transactional
- 整合Junit對(duì)業(yè)務(wù)層進(jìn)行單元測(cè)試
- @RunWith
- @ContextConfiguration
- @Test
- 編寫Controller層
- 接收請(qǐng)求 @RequestMapping @GetMapping @PostMapping @PutMapping @DeleteMapping
- 接收數(shù)據(jù) 簡單、POJO、嵌套POJO、集合、數(shù)組、JSON數(shù)據(jù)類型
- @RequestParam
- @PathVariable
- @RequestBody
- 轉(zhuǎn)發(fā)業(yè)務(wù)層
- @Autowired
- 響應(yīng)結(jié)果
- @ResponseBody
2 整合配置
掌握上述的知識(shí)點(diǎn)后,接下來,我們就可以按照上述的步驟一步步的來完成SSM的整合。
2.1 步驟1:創(chuàng)建Maven的web項(xiàng)目
可以使用Maven的骨架創(chuàng)建
2.2 步驟2:添加依賴
pom.xml添加SSM所需要的依賴jar包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>springmvc_08_ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.3 步驟3:創(chuàng)建項(xiàng)目包結(jié)構(gòu)
- config目錄存放的是相關(guān)的配置類
- controller編寫的是Controller類
- dao存放的是Dao接口,因?yàn)槭褂玫氖荕apper接口代理方式,所以沒有實(shí)現(xiàn)類包
- service存的是Service接口,impl存放的是Service實(shí)現(xiàn)類
- resources:存入的是配置文件,如Jdbc.properties
- webapp:目錄可以存放靜態(tài)資源
- test/java:存放的是測(cè)試類
2.4 步驟4:創(chuàng)建SpringConfig配置類
@Configuration
@ComponentScan({"com.itheima.service"})
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}
2.5 步驟5:創(chuàng)建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 dataSource = new DruidDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
@Bean
public PlatformTransactionManager transactionManager(DataSource
dataSource){
DataSourceTransactionManager ds = new DataSourceTransactionManager();
ds.setDataSource(dataSource);
return ds;
}
}
2.6 步驟6:創(chuàng)建MybatisConfig配置類
public class MyBatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("com.itheima.domain");
return factoryBean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
2.7 步驟7:創(chuàng)建jdbc.properties
在resources下提供jdbc.properties,設(shè)置數(shù)據(jù)庫連接四要素文章來源:http://www.zghlxwxcb.cn/news/detail-760479.html
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database_name
jdbc.username=root
jdbc.password=root
2.8 步驟8:創(chuàng)建SpringMVC配置類
@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}
2.9 步驟9:創(chuàng)建Web項(xiàng)目入口配置類
public class ServletConfig extends
AbstractAnnotationConfigDispatcherServletInitializer {
//加載Spring配置類
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
//加載SpringMVC配置類
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
//設(shè)置SpringMVC請(qǐng)求地址攔截規(guī)則
protected String[] getServletMappings() {
return new String[]{"/"};
}
//設(shè)置post請(qǐng)求中文亂碼過濾器
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("utf-8");
return new Filter[]{filter};
}
}
至此SSM整合的環(huán)境就已經(jīng)搭建好了。在這個(gè)環(huán)境上,我們?nèi)绾芜M(jìn)行功能模塊的開發(fā)呢?
我們下一節(jié)開始學(xué)習(xí)如何進(jìn)行功能模塊開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-760479.html
到了這里,關(guān)于【Spring教程31】SSM框架整合實(shí)戰(zhàn):從零開始學(xué)習(xí)SSM整合配置,如何編寫Mybatis SpringMVC JDBC Spring配置類的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!