★学习目标:
掌握SSM框架整合-纯注解方式,能够使用纯注解方式整合SSM框架
★思考任务:
1、纯注解方式整合思路是什么?
★任务学习:
视频学习
★知识要点:
接下来,将项目中的XML配置文件删除,使用纯注解的配置类依次替换对应的XML文件内容,以完成纯注解的SSM框架整合。具体实现步骤如下所示。
1.创建名称为JdbcConfig的类,用于获取数据库连接信息并定义创建数据源的对象方法,并定义getDataSource()方法,用于创建DruidDataSource对象。@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {// 下面为使用注入的形式。定义dataSource的bean,省略
@Value("${jdbc.driverClassName}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;}
2.创建名称为MyBatisConfig的类,在MyBatisConfig类中定义getSqlSessionFactoryBean()方法,用于创建SqlSessionFactoryBean对象并返回。
public class MyBatisConfig {// 定义MyBatis的核心连接工厂bean
@Beanpublic SqlSessionFactoryBean getSqlSessionFactoryBean(
@Autowired DataSource dataSource){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
ssfb.setDataSource(dataSource);
return ssfb; }// 定义MyBatis的映射扫描,省略}
3.创建名称为SpringConfig的类作为项目定义Bean的源头,并扫描Service层对应的包。
@Configuration
@Import({MyBatisConfig.class,JdbcConfig.class})// 等同于<context:component-scan base-package="com.itheima.service">
@ComponentScan(value = "com.itheima.service")// 将MyBatisConfig类和JdbcConfig类交给Spring管理public class SpringConfig {}
4.创建名称为SpringMvcConfig的类作为Spring MVC的配置类,在配置类中指定Controller层的扫描路径。
@Configuration// 等同于<context:component-scan// base-package="com.itheima.controller"/>
@ComponentScan("com.itheima.controller")// 等同于<mvc:annotation-driven/>,还不完全相同@EnableWebMvcpublic class SpringMvcConfig {}
5.创建名称为ServletContainersInitConfig的类,继承AbstractAnnotationConfigDispatcherServletInitializer抽象类,重写抽象类的方法。用于替代之前web.xml文件配置的信息 ,初始化Servlet容器时加载指定初始化的信息。
public class ServletContainersInitConfig extendsAbstractAnnotationConfigDispatcherServletInitializer {// 加载Spring配置类中的信息,初始化Spring容器protected Class<?>[] getRootConfigClasses()
{return new Class[]{SpringConfig.class}; }// 加载Spring MVC配置类中的信息,初始化Spring MVC容器protected Class<?>[] getServletConfigClasses()
{return new Class[]{SpringMvcConfig.class}; }// 配置DispatcherServlet的映射路径protected String[] getServletMappings() { return new String[]{"/"}; }}
AbstractAnnotationConfigDispatcherServletInitializer抽象类重写AbstractAnnotationConfigDispatcherServletInitializer抽象类的3个方法。
• getRootConfigClasses()方法:将Spring配置类的信息加载到Spring容器中。• getServletConfigClasses()方法:将Spring MVC配置类的信息加载到Spring MVC容器中。
• getServletMappings()方法:可以指定DispatcherServlet的映射路径。
7.启动chapter14项目,在浏览器中访问图书信息查询地址,地址为http://localhost:8080/book?id=1,页面显示效果如图所示。

从图中所示的信息可以看出,程序成功查询到了id为1的图书信息。表明Controller将Service获取的图书信息成功返回给页面了,由此可以得出纯注解的SSM框架整合成功

