1、使用逆向工程创建pojo和mapper相关的文件
2、ssm框架的整合
2.1 整合mybatis,创建SqlMapConfig.xml文件
xml文件为一个只有约束的空头文件
2.2利用spring整合dao、service、trans ,由于面向服务,所以表现层和服务层分离,同时使用dubbox进行通信。
2.2.1 dao
数据源使用的引入properties文件,便于后期的修改
<context:property-placeholder location="classpath:properties/*.properties" />
<!-- 数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="driverClassName" value="${jdbc.driver}" />
<property name="maxActive" value="10" />
<property name="minIdle" value="5" />
</bean>
SQLSessionFactory 中需要DataSource以及mybatis的约束文件xml
<!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 加载mybatis的全局配置文件 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
</bean>
mapper文件的扫描
<!-- 扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.taotao.mapper" />
</bean>
2.2.2 service
注解扫描
<context:component-scan base-package="com.taotao.service"></context:component-scan>
dubbox文件配置
<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="taotao-manager" />
<dubbo:registry protocol="zookeeper" address="192.168.25.128:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 本质是:service扫描包会扫描接口的包
,扫描接口包之后就能扫描到serviceImp子包,因此就可以找到实现类
同时 serviceImp注解驱动也会有bean id的形式(只是没显示出来)id就是默认的类名首字母小写itemsServiceImp -->
<dubbo:service interface="com.taotao.service.ItemsService" ref="itemsServiceImp" timeout="3000" />
在web.xml文件中添加监听器
3 、表现层
3.1 web.xml文件:post乱码以及前端控制器
3.2 springmvc.xmlwenj文件
<!-- 配置注解驱动 -->
<mvc:annotation-driven />
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置包扫描器,扫描@Controller注解的类 -->
<context:component-scan base-package="com.taotao.controller"/>
<!-- 配置资源映射 -->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<!-- 引用dubbo服务 -->
<dubbo:application name="taotao-manager-web"/>
<dubbo:registry protocol="zookeeper" address="192.168.25.128:2181"/>
<!-- reference中的接口名字必须要和dubbo:service中的一致 ,以下为两者的对比更清晰 -->
<!-- <dubbo:service interface="com.taotao.service.ItemsService" ref="itemsServiceImp" timeout="3000" /> -->
<dubbo:reference interface="com.taotao.service.ItemsService" id="itemsService" />
4、测试运行
- 在manager-interface中创建com.taotao.service包并创建ItemsService接口
- 在manager-service中创建com.taotao.service.Imp包并且创建ItemsServiceImp实现类(前提在pom.xml文件中添加对interface的依赖)
- 在manager-web工程中创建com.taotao.controller包,并且创建ItemController类
@Controller
public class ItemController {
//使用itemsService就是因为dubbo在中间做了通信
@Autowired
private ItemsService itemsService;
@RequestMapping("/item/{itemId}")
@ResponseBody
public TbItem getItemById(@PathVariable Long itemId) {
//根据商品id查询商品信息
TbItem tbItem = itemsService.selectById(itemId);
return tbItem;
}
- 最后在dubbox监控中心显示监视结果