其实我在学ssm的过程中,我一直都不是特别懂这些配置文件中到底有什么用,即使我当时懂了,我后面可能还是会忘记,只记得有个什么东西能达到怎样的效果,在学完maven后,maven把ssm分解的更细致,所以我就在这里把ssm的配置文件做一个简要的说明,方便以后查看
先说下Dao层
jdbc.properties
这个我叫他连接池,一般学习的时候我就只配置一个连接在里面,但是细想,我们可以在里面配置很多很多的连接,根据前缀进行区分。
这里面主要配置的就是我们前期用DBConnection去连接数据库的那些信息
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/springmvc***
jdbc.username=root
jdbc.password=*******
applicationContext-dao.xml
然后我们来谈谈这个spring的dao配置文件需要配置什么,用口头语言阐述出来,用逻辑思维去记住,第一我们要知道dao层是管理数据库的,这是最基本的,所以我们首先要通过配置外部文件去连接这个数据库,也就是通过连接池的数据去连接数据库,看代码
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close" >
//destroy-method="close"的作用:当数据库连接不使用的时候,就该把连接重新放到数据池中,方便下次使用调用
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
这样你就可以认为是已经连接上数据库了, 这个时候我们还要问自己,数据库连接上了,dao层的任务就结束了嘛,答案当然不是,第二,我们既然连接了数据库,那么我们还需要给他配置一个session工厂类,我的理解就是将数据源和mybatis的配置文件与sqlSession工厂相关联。第三,我们需要将sqlsession工厂与调用mybatis的接口的dao层相关联,你要告诉dao层,这里面你可以操作哪些接口。我这样理解我会记得很通顺,代码如下
<!-- sqlSessionFactory mybatis会话工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载mybatis配置文件 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描的包名
如果扫描多个包,每个包中间使用半角逗号分隔 -->
<property name="basePackage" value="*.*.*.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
applicationContext-service.xml
这个就只需要做一个配置,就是扫描你的service这个接口类
<context:component-scan base-package="cn.itheima.springmvc.service"/>
然后在实现类中通过注解来配置这些方法
springmvc.xml
首先我们要了解一下springmvc的作用是什么,控制业务层。和以前的struts2的作用是一样的,只是struts2更习惯用配置文件,springmvc更习惯用于注解,所以你得找到扫描的这个包,代码如下:
<!-- 扫描controler @Service -->
<context:component-scan base-package="cn.itheima.springmvc.controller"/>
记得扫描包,我们还要做一步就是开启注解驱动,这样就会自动解析注解
<!-- 注解驱动 -->
<mvc:annotation-driven />
<!-- 视图解释器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
视图解析器,这个问题很严肃,他规定了前缀和后缀,假如你要访问一个地址是localhost:8080/ssm/WEB-INF/jsp/test.jsp
你配置了视图解释器,那么你就可以直接写成localhost:8080/ssm/test