注解的力量 -----Spring&nbsp…
来源:互联网 发布:淘宝fake潮牌最好的店 编辑:程序博客网 时间:2024/05/17 23:01
本系列重点是涉及 配置过程 ,对注释的用法不多介绍。
注释语法越来越多的被业界所使用,并且注释配置相对于 XML 配置具有很多的优势:它可以充分利用Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。注释和 Java 代码位于一个文件中,而 XML配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java代码放在一起,有助于增强程序的内聚性。而采用独立的 XML配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。因此在很多情况下,注释配置比XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 2.5的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分 XML 配置的功能。
这个体系里面 有这样几个重要的配置文件。
- hibernate.cfg.xml 。
里面通过 配置 mapping来指向每张数据表单生成配置文件.xxxx.hbm.xml文件 - applicaitonContex.xml。
里面通过定义一个一个bean 来配置 各个需要用到的 DAO 和 Service。hibernate.cfg.xml要配置这么多xxxxx.hbm.xml文件。每次数据结构发生变化的时候。要重新去改写pojo和dao以及这些xxxxx.hbm.xml- <?xml
version= "1.0"encoding= "UTF-8"?> - <!DOCTYPE
beans "-//SPRING//DTDPUBLIC BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> - <beans
> -
<bean id= -
-
<property name= -
value= -
</property> -
</bean> -
-
<bean id= class="org.springframework.orm.hibernate3.HibernateTransactionMana ger" > -
<property name= -
< local= "sessionFactory"/> -
</property> -
</bean> -
<bean id= class="org.springframework.transaction.interceptor.TransactionInterceptor"> -
<!-- 事务拦截器bean需要依赖注入一个事务管理器 --> -
<property name= -
< local= "transactionManager"/> -
</property> -
<property name= -
<!-- 下面定义事务传播属性--> -
<props> -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
<prop key= -
</props> -
</property> -
</bean> -
-
- <!--定义自动代理BeanNameAutoProxyCreator
--> - <beanid="beanNameAutoProxyCreator
" - class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
"> - <!--
指定对满足哪些bean name的bean自动生成业务代理--> - <propertyname="beanNames">
-
<list> -
-
</list> -
- <!--
下面定义BeanNameAutoProxyCreator 所需的事务拦截器--> - <propertyname="interceptorNames">
- <list>
- <!-- 此处可增加其他新的Interceptor-->
- <value>transactionInterceptor</value>
- </list>
- </property>
-
</bean> -
<bean id= -
-
<property name= -
< bean= "sessionFactory"/> -
</property> -
</bean> -
<bean id= -
-
<property name= -
< bean= "sessionFactory"/> -
</property> -
</bean> - </beans>
那么好。我们现在就用 注解的力量 去把这部分工作简化。 - <?xml
- 首先我们需要
- hibernate3.2 以上版本的jar
- jdk 5 以上的环境
- spring2
- 然后我们修改pojo的java类。加上注解。使起通过注解来取代原先要xxxx.hbm.xml里面配置的指向的数据库表单结构的信息。
- package
com.alcor.web.hibernate; - import
java.util.HashSet; - import
java.util.Set; - import
javax.persistence.CascadeType; - import
javax.persistence.Column; - import
javax.persistence.Entity; - import
javax.persistence.FetchType; - import
javax.persistence.Id; - import
javax.persistence.JoinColumn; - import
javax.persistence.ManyToOne; - import
javax.persistence.OneToMany; - import
javax.persistence.Table; - @Entity
- @Table(name
= "alcor_t_citys", catalog "alcorweb")= - public
class AlcorTCitys implements java.io.Serializable { -
Fields -
String cityCode; -
AlcorTProvinces alcorTProvinces; -
String cityName; -
Set<AlcotTDistrict> newalcotTDistricts = HashSet<AlcotTDistrict>(0); -
Constructors -
-
AlcorTCitys() { -
} -
-
AlcorTCitys(String cityCode, AlcorTProvinces alcorTProvinces, -
String cityName) { -
= cityCode; -
= alcorTProvinces; -
= cityName; -
} -
-
AlcorTCitys(String cityCode, AlcorTProvinces alcorTProvinces, -
String cityName, Set<AlcotTDistrict> alcotTDistricts) { -
= cityCode; -
= alcorTProvinces; -
= cityName; -
= alcotTDistricts; -
} -
Property accessors -
@Id -
@Column(name = unique true,= nullable false,= length = 32) -
String getCityCode() { -
this.cityCode; -
} -
void setCityCode(String cityCode) { -
= cityCode; -
} -
@ManyToOne(fetch = FetchType.EAGER) -
@JoinColumn(name = nullable false)= -
AlcorTProvinces getAlcorTProvinces() { -
this.alcorTProvinces; -
} -
void setAlcorTProvinces(AlcorTProvinces alcorTProvinces) { -
= alcorTProvinces; -
} -
@Column(name = nullable false,= length = 64) -
String getCityName() { -
this.cityName; -
} -
void setCityName(String cityName) { -
= cityName; -
} -
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = -
Set<AlcotTDistrict> getAlcotTDistricts() { -
this.alcotTDistricts; -
} -
void setAlcotTDistricts(Set<AlcotTDistrict> alcotTDistricts) { -
= alcotTDistricts; -
} - }
- 修改hibernate.cfg.xml中的定义方式,把原来的mapingsource=“xxxxx.hbm.xml”修改成
这样我们就可以把原来的 xxxxx.hbm.xml全部删除了。
经过这个步骤。如果你原有的servcice层的功能能够正常使用。恭喜你。迈出了成功的第一步。
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 命令运行的判断依据: ; , &…
- 使用 grep 的 -o&n…
- 【转载】Spring RMI&nb…
- Spring Quartz定时器&n…
- weibo 登录&nbsp…
- Android edittext&nbsp…
- !!! FAILED BINDER&nbsp…
- OGNL & ValueStack&…
- Javascript_DOMContentLoaded&nbsp…
- ApplicationEventMulticaster&nbsp…
- 非常详细的Android wifi&nbsp…
- 非常详细的Android wifi&nbsp…
- 愤怒的小鸟卡丁车 Angry&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- 注解的力量 -----Spring&nbsp…
- Maven中Profiles的应用(1)
- 注解的力量 -----Spring&nbsp…
- hibernate对象关系映射(一对一,…
- ssh整合web.xml过滤器和监听器的配…
- (Struts)ActionForm类及表单数据验…
- Linux程序设计第一章
- struts-config.xml
- spring配置datasource三种方式
- web.xml文件的作用
- url-pattern配置技巧