代码已经完善,文章内容会在后续补充
代码地址(https://javazhang.lanzn.com/ig8tf1wd2aba
密码:1234)
1.1 .SpringConfig 代码
@Configuration
@ComponentScan({"com.itheima.service" })
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class, MyBatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}
第一个注解: 设置当前类为配置类
第二个:包扫描识别Spring组件类
第三个:加载外部配置文件
第四个:导配置包
第五个:开启事务
1.2JdbcConfig
package com.itheima.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
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;
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager ds = new DataSourceTransactionManager();
//这里的dataSourse不能用方法调 因为用发放调就会脱离Spring管理 就不是一个东西
ds.setDataSource(dataSource);
return ds;
}
第二个方法是用来配合事务管理的
1.3 MyBatisConfig
package com.itheima.config;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
public class MyBatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
ssfb.setDataSource(dataSource);
//类型别名
ssfb.setTypeAliasesPackage("com.itheima.domain");
return ssfb;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
//指定映射从哪加载
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
这个类是为了在Spring类中集成MyBatis的
第一个方法 创建与数据交互用到的sqlsession
为类型起别名 简化sql语句类型引用
第二个方法 为了绑定mapper的类 ,mapper中做到了进行数据库操作等内容
1.4 jdbc配置类
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db
jdbc.username=root
jdbc.password=1234
2.1 ServletConfig
package com.itheima.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
/**
* 外部容器配置类
*/
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
//记载spring配置类
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
//web容器加载SpringMvcconfig
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
//拦截请求归谁管
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
第一个方法指定SpringConfig 的配置类
第二个指定SpringMVC配置类
第三个指定Spring mvc响应哪些请求
SpringMvc:构建web项目提供了一个完整的流程