`
paddy2008
  • 浏览: 8105 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嵊州
文章分类
社区版块
存档分类
最新评论

谈SSH 和软件工程

阅读更多

 

SSH 和软件工程;

对于一个接触软件不到一年的菜鸟来说,《 SSH 和软件工程》这么大个题目很难,但是万变不离其宗,以不变应万变;所以一切问题都不是问题;

得到一个题目,怎么办?

答:先脉络后细节;

当然还有其他叫法, eg :先计划后实施;先设计后实现;先思路后实践 等;

什么样的脉络是最好的?

没有好不好;只有合不合适;选择自己合适的脉络就 ok eg what+why+when+how

软件项目流程:售前欺骗 需求分析 - - 项目设计 -- 代码实现 ---- 测试 --- 售后讨好 ( 项目实施 )

一: what

软件工程的定义和 SSH 的定义没意思;理解就可;

自己看懂就行;别人看不懂是正常的;因为隔行如隔山;

按照传统模式 我们的项目分为 MVC 三层;结合 SSH 可以得出下图:

-------图片怎么搞啊??弄不出来 ----

二: why

这个行业内的前辈多年得出的一个好的结论;对于理解的程度只能靠自己领悟;

面向对象 面向接口 和面向服务;

企业的项目不是面向对象的;这就是为什么在实体类里没有写业务操作的原因;写了会怎么样呢?后果自负;

三: when

有点规模 或者 想以后扩展的项目就应该这样做;

当然那些学习阶段的学习者也可以这样做;

四: how

先部署;后调试;跟着思路 ( 或运用 debug) 看代码;当然前提是明白 SSH 原理的情况下;

----------------------

struts2 流程:

client(browse)-->url--http 协议 -->tomcat--> Application-->web.xml(fitler)-->filter.doFilter()

doFilter() 的执行是参考 struts.xml

struts.xml-->namespace->-action-- 当看见有 class 就找去对象 ( 访问的时候创建;所以会比较耗内存 )

-->-result--->jsp-->client(browse)

hibernate 总结: ( 映射 优化 )

映射:

set 写在 1 的一方;写代码也是这样;

一对多: 多: 1 )说一下属性 2 )说一下我表中的哪个列是外键; 3) 也可以说一下属性里面放的东西

---> 只用 <many-to-one/> 一个标签; inverse cascade 一般放这里 ( 因为是多维护关系 )

一: 1 )说一下属性 2 )属性里放的是什么东西 <one-to-many> 3) 指明一下对方的外键;我要靠这个键建立关系 [<key>]

----> <set> <one-to-many> <key> 3 标签;

多对多:

1) 说明属性;指出外键表 ( 独立的 );

2) 属性里面方的是什么东西 ; 这个东西代表哪个列;

3 )表中哪个列是指向我的 ;<key column="moduleid"></key>;

一对一 ( 通过外键 )

有外键方 1) 说明一下属性 2) 说一下我的哪个键是外键 3)unique="true"

eg: <many-to-one name="acct" column="FID" unique="true"lazy="false"/>

无外键方 1) 1) 说明一下属性 2) 说一下我要引用的那个列 ( 属性 )?

eg:<one-to-one name="owner" property-ref="acct"/>

一对一 ( 共享主键 )

<one-to-one name="owner" />

<one-to-one name="acct" constrained="true"/>

优化:

一级缓存 + 二级缓存 + 三级缓存 ( 查询缓存 )

一级缓存:同一个 session 里面 load2 次一个对象; id 一样;第 2 次不会 sql 查询;

二级缓存:不同的 session ;对象 id 一样;还是不会去数据库查;去二级缓存查;

三级缓存:在配好 2 级缓存的基础上;只有 2 hql 语句一样的时候;

spring 总结 (Ioc—AOP-- 支持 --acegi)

Ioc :对象实例化的演变: new( 不方便 )--->factory( 要写多个 Factory)--->Ioc( 工厂的工厂 )

AOP :代理模式 --- 静态代理 ---- 动态代理

代理职责:完成本分 + 业务委托

配置过程:

1 )搞出切面行为; eg 事务;

2 )定好切面位置; eg Advisor

3) 完成织入;

支持: dao 支持 (jdbc 模板等 )+service 支持 ( 事务 , 日志等支持 )+web 支持 ( Servlet struts 的集成 )

acegi 框架:运用的 Aop 过滤器 来实现 配置文件验证 或者 数据库的验证 达到 用户认证 授权

----------

---- -----

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics