SSM整合(整合配置)
-
创建工程
-
SSM整合
- Spring
- SpringConfig
- MyBatis
- MybatisConfig
- JdbcConfig
- jdbc.properties
- SpringMVC
- ServletConfig
- SpringMvcConfig
- Spring
-
功能模块
- 表与实体类
- dao(接口+自动代理)
- service(接口+实现类)
- 业务层接口测试(整合JUnit)
- controller
- 表现层接口测试(PostMan)
创建工程
Project Structure --> Modules --> + --> Maven --> New Module --> Maven --> Archetype --> webapp Project Structure --> New Folder (java, resources, test.java)
org.springframework:spring-webmvc:5.2.10.RELEASE
org.springframework:spring-jdbc:5.2.10.RELEASE
org.springframework:spring-test:5.2.10.RELEASE
org.mybatis:mybatis:3.5.6
org.mybatis:mybatis-spring:1.3.0
mysql:mysql-connector-java:5.1.47
com.alibaba:druid:1.1.16
junit junit4.12 (test)
javax.servlet.javax.servlet-api:3.1.0 (provided)
com.fasterxml.jackson.core:jackson-databind:2.9.0
<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>
在 src/main/java/ 下创建目录 com.xxx.config、com.xxx.service、com.xxx.dao、com.xxx.controller、com.xxx.domain
在 com.xxx.service 下创建目录 impl
SpringConfig.java
package com.xxx.config;
@Configuration
@Component({"com.xxx..service"})
@PropertySource("jdbc.properties")
@Import({JdbcConfig.class, MyBatisConfig.class})
public class SpringConfig {
}
在 src/main/resources 下创建 jdbc.properties
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db
jdbc.username=root
jdbc.password=root
JdbcConfig.java
package com.xxx.config;
public class JdbcConfig {
@Value("${jdbc.drive}")
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;
}
}
MyBatisConfig.java
package com.xxx.config;
public class MyBatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("com.xxx.damain");
return factoryBean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.xxx.dao");
return msc;
}
}
ServletConfig.java
package com.xxx.config;
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
SpringMvcConfig.java
package com.xxx.config;
@Configuration
@ComponentScan("com.xxx.controller")
@EnableWebMvc
public class SpringMvcConfig {
}