每日总结[7]20191008 初识SSM

(1)头脑风暴:把我能想到的写下来。
SSM就是Spring+SpringMVC+Mybatis。
以简单实现select * from user;为例。
我们使用Spring来管理Mybatis,本来使用Mybatis时,需要配置两个核心配置文件:sqlMapConfig.xml和UserMapper.xml(使用动态代理方式生成,需要满足7条规则,在mapper包下提供UserMapper接口和UserMapper.xml,xml中<selcect type=resultMap>)。因为用Spring来管理Mybatis,所以我们不需要在sqlMapConfig.xml中写任何信息,但是该xml是不可忽略的,因为会声明用的是Mybatis技术。
要使用SpringMVC来解耦,回忆MVC:第一层是View,(由JSP实现)二是Controller(由注解装配),三是Model(分为service和dao,我们这里只使用service),四是presistent持久层,由刚刚提到的Mybatis实现。

[补:因为在我们的View-Controller-Model(Service)-Persistance(Mapper)架构中,上层依赖下层,而下层不依赖于上层,(Persistance不依赖Service,照样可以拿到数据,Service不依赖于Controller照样能管理类与类之间的关系。)
不应产生循环依赖。
Contrller层是依赖于Service层的,因此UserController类需要新增 UserService属性。
Service层是依赖Mapper层的,这样才能去做相应的事务管理,去控制类与类之间的关系。因此需要在UserServiceImpl中写入:
@Autowired
private UserMapper userMapper;
@Override
public List queryUserListService() throws Exception {
return userMapper.queryUserList();
}]

使用SpringMVC,首先,是要在web.xml中通过<servlet>配置前端控制器,接下来是处理器,(处理器映射器、处理器适配器、视图解析器)需要在controller包下新建一个UserController类,可以通过@Controller注解的方式,而且该类需要有个方法能返回ModelAndView,这样可以和jsp产生关系。
SpringMVC的重要的配置文件是那些applicationContext.xml,
[改:Spring中重要的是那些applicationContext.xml]
首先,我们需要applicationContext-controller,既然用了注解,就需要用包扫描的方式,然后还需要-mapper,实现由Spring去管理Mybatis,其中的属性由datasources、(为什么不使用JDBC,因为不是本地事务)

[补充:因为我们的web项目不是只在本地进行访问,是由服务器提供相应服务,web项目应当具有全局事务的能力,只能使用数据源,数据源中提供了连接池,提供了不同数量的连接,当我们需要的时候使用即可。]

sqlSessionfactory、(会使用ref引用刚刚那个datasources)、还会有个属性与Mybatis的sqlMapConfig.xml有关联。db.properties也是要写到这里让它读取的。
[补:与Mybatis的sqlMapConfig.xml有关联的bean class是MapperScannerConfigurer]

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<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>

    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.bit.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
    </bean>


发布了47 篇原创文章 · 获赞 1 · 访问量 1277

猜你喜欢

转载自blog.csdn.net/weixin_41750142/article/details/102413353