浅谈spring——引言(一)

引言

做开发已有几年光景,随着项目的不断深入,对spring的了解也越来越多,深深为spring的灵活设计、强大功能所折服。以下内容是开发过程中的一些心得体会,可能会有些杂乱,希望对你有所帮助


spring是Java EE应用一站式的轻量级开源框架,以IOC(Inverse of Control)控制反转和AOP(Aspect Oriented Programming)面向切面的编程为核心。

贯彻并遵守“好的设计优于具体实现”。

优点:

1. 耦合性低。之前类对象与类对象之间的调用完全是通过硬编码来实现;而spring则是利用java的多态性,将这种依赖关系定义在配置文件中,交由spring控制,可以有效避免硬编码造成的代码过度耦合。

2. AOP支持,可以方便的进行切面编程,不会侵入原来的业务代码。广泛应用于性能监控、统计、权限控制等

3. 对事务处理作了封装,采用声明式灵活管理事务,极大提高开发效率

4.方便集成各种开源框架(如struts,ibatis,quartz)

5. api简单,可以快速入门


低版本的spring配置采用DTD格式,spring2.0引入XML Schema格式,提供了不同的命名空间,可以有效的规范了Bean的格式。

常用的模式:单例(singleton)与原型(prototype)


spring是一个多层的java EE开发框架,引用了很多开源项目包并做了兼容,涵盖面很广。常见的三方库如:Hibernate,iBatis,Velocity,Struts,DOM4j,asm,cglib,junit,log4j等


 由于spring的广泛使用,很多开源组织开发了多个面向spring应用的子项目,可以解决各种领域的问题,比较实用的如:

Acegi Security:提供安全认证服务和程序资源访问控制

Spring BeanDoc:可以以图形的方式快速生成描述spring配置文件的bean关系。


注:利用spring开发项目时,由于依赖关系都是定义在配置文件中,为了方便管理,最好按层(表现层、业务逻辑层、数据层)分类,为每一层提供一个单独的配置文件。

持久层负责数据的访问和操作,被业务逻辑层所调用,其包结构通常如下:


daointerface:存放操作数据库的各种接口

ibatis:接口的实现类

dataobject:实体类,代表业务的状态。通常要求:1)序列化 2)无参构造器 3)get/set方法

param:接口的参数类(增、删、改、查)


web.xml 配置文件


	contextConfigLocation
	classpath:aa-dao.xml,classpath:bb-service.xml


	
		org.springframework.web.context.ContextLoaderListener
	

spring定义了一个web容器监听器ContextLoaderListener,当监听到web容器启动时会自动启动,同时加载contextConfigLocation里配置的文件,启动spring容器,并初始化各种bean,建立关系。注意将log4j.xml文件配置在类路径下,以便日志引擎自动生效。



你可能感兴趣的:(java,spring小结)