发表于: 2017-10-24 23:20:28

2 680


今天完成的事


以Student业务为例分层分析:从底层开始

1.DAO层(数据访问层):DAO层主要的工作就是负责与数据库进行联络,将数据持久化(增,删,改,查)

包含的内容:

Student (POJO)

StudentMapper (DAO)

StudentMapper.xml (Mybatis)

jdbc.properties(数据库配置文件)


2.Service层:主要负责业务模块的逻辑应用,对数据层的操作和处理

包含的内容:

StudentService (interface)

StudentService (implment)

*Util(各种封装的工具类:cookie,session,token,Md5,Des,log)

dateTag(时间格式转换)

dateTag.tld

log4j.properties


3.control层:负责于与用户交互 对用户的一系列请求做出处理(验证,拦截等等)

包含的内容:

Studentcontroller(控制器)


4.view层:此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示

包含内容:

*.jsp(前端页面)

css&jss(前端样式以及效果)

tiles.xml(tiles框架)


各层联系:Service层建立在DAO层之上,又建立在Controller层之下的,所以service会调用DAO(mapper)层的接口岁数据库操作以实现增删改查,而controller又会调用Service的接口以实现某个用户请求的功能,所以service承上启下的作用就非常明显了,在整个项目中的分量也非常重要

留一张很直观地图吧

配置文件:

1.pom.xml:Maven项目的核心文件:pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。


2.web.xml:主要是配置web项目启动时加载的信息比如<context-param/>配置参数,

<listener/>配置你的监听器,<filter/>配置过滤器,<servlet/>配置你的servlet实现。(百度知道)

内容:

配置DispatcherServlet( 前台控制器)

声明mvc的配置文件springmvc.xml的路径

引用自定义时间转换类DateTag的配置文件datetag.tld

指定spring配置文件位置


3.spring-mvc.xml(SpringMVC配置文件)

 内容:

<!--启用spring的一些注解 -->

<context:annotation-config/>

<!-- 配置注解驱动 可以将request(请求)参数与绑定到controller参数上 -->

<mvc:annotation-driven/>

<!--静态资源映射-->

<mvc:resources mapping="/css/**" location="/page/t10/"/>

<!--配置视图解析器-->

<!-- tiles配置路径 -->

<!-- 自动扫包,使SpringMVC认为包下用了@controller注解的类是控制器 -->

<!-- springmvc文件上传需要配置的节点, MultipartResolver 主要用来处理文件上传-->

<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!--拦截器Interceptor-->

<mvc:interceptors>


4.spring-mybatis

<!--spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @ Controller @ Service等这些注解的类,则把这些类注册为bean-->

<context:component-scan base-package="com.task4.jnshu"/>

<!--加入jdbc.properties-->

<!--配置连接池-->

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

<!-- 二、创建mybatis会话工厂 -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<!-- 自动扫描mapping.xml文件 -->

<property name="mapperLocations" value="classpath:mapping/*.xml"></property>

<!--MapperScannerConfigurer 可以不用再写映射关系的命名空间,扫描Mapper接口-->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<!--执行环绕通知的类-->

<bean id="LogAdvice" class="com.task4.jnshu.util.LogAdvice">

总结:之前一直对SSM的逻辑很模糊,今天特意整理一下,如果以自己写的还看不懂,那就看看这个链接,我自己也参考了这篇文章的格式

http://blog.csdn.net/lutianfeiml/article/details/51864160


之后继续搞Memcached的demo

按照昨天帆哥讲的思路,继续搞

1.配置jar包

<dependency>
 <groupId>com.whalin</groupId>
 <artifactId>Memcached-Java-Client</artifactId>
 <version>3.0.2</version>
</dependency>

2.spring配置文件中加入memcached的配置

<!--spring 集成缓存服务器(memcached-->
<bean id="memcachedPool" class="com.whalin.MemCached.SockIOPool"
     factory-method="getInstance" init-method="initialize"
     destroy-method="shutDown">

   <constructor-arg>
       <value>memCachedPool</value>
   </constructor-arg>

   <property name="servers">
       <list>
           <value>127.0.0.1:11211</value>
       </list>
   </property>

   <property name="initConn">
       <value>20</value>
   </property>

   <property name="minConn">
       <value>10</value>
   </property>

   <property name="maxConn">
       <value>250</value>
   </property>

   <property name="maintSleep">
       <value>3000</value>
   </property>

   <property name="nagle">
       <value>false</value>
   </property>

   <property name="socketTO">
       <value>3000</value>
   </property>
</bean>
<bean id="memCachedClient" class="com.whalin.MemCached.MemCachedClient">
   <constructor-arg>
       <value>memCachedPool</value>
   </constructor-arg>
</bean>

3.然后编写测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
public class memcachedTest {


@Autowired
   private MemCachedClient memCachedClient;
    @Test
   public void setMemcachedServer(){
Boolean target=memCachedClient.set("1", "123456");
       System.out.println("memcached 加载是否成功:"+target);
       String result =(String)memCachedClient.get("1");
       System.out.println("memcached 获取的结果:"+result);
   }

运行测试

终于成了


遇到的问题:

无法加载memcached.properties配置文件,原因出在memcached的连接配置文件池占位符不能成功加载memcached.properties中的配置

我师兄也遇到过这个问题,他的解决方法是手填,那我也就先填上吧


明天的计划:

找一个memcached的工具类使用,修改service中的代码,并初步压测查看效果

准备小课堂


收获:SSM的代码逻辑清晰了许多,至于memcached,我觉得我还是需要再找些资料看看还是有点蒙


任务进度:任务6步骤2

任务开始时间:2017-10-21

预计demo时间:2017-10-26

是否有延期风险:暂无

禅道:http://task.ptteng.com/zentao/project-task-276.html




返回列表 返回列表
评论

    分享到