当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Spring的datasource配置详解      一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。下面就详细介绍dataSource Bean的配置。 先上代码(比较齐全的属性) <bean i.........
    ▪Spring笔记 - Bean xml装配      命名空间表     aop Provides elements for declaring aspects and for automatically proxying @AspectJannotated classes as Spring aspects. beans The core primitive Spring namespace, enabling declaration of beans and how they sho.........
    ▪关于JavaEE ssh架构的一点小感悟      刚刚第一次整合完struts2+spring+hibernate,也就是传说中的ssh。从学java以来,就一直视ssh为神物。真的,第一次在哪听到的ssh我都忘了,但是一直觉得只有会用ssh,并且能整合一起用,这样.........

[1]Spring的datasource配置详解
    来源: 互联网  发布时间: 2013-11-19

一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。下面就详细介绍dataSource Bean的配置。

先上代码(比较齐全的属性)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
	destroy-method="close">
	<property name="driverClassName" value="${driverClassName}" />
	<property name="url" value="${url}" />
	<property name="username" value="${username}" />
	<property name="password" value="${password}" />
	<!-- 连接初始值,连接池启动时创建的连接数量的初始值 -->
	<property name="initialSize" value="${initialSize}" />
	<!-- 连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制 -->
	<property name="maxActive" value="${maxActive}" />
	<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 ,0时无限制-->
	<property name="maxIdle" value="${maxIdle}" />
	<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
	<property name="minIdle" value="${minIdle}" />
	<!-- 是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存 -->
	<property name="poolPreparedStatements" value="true" />
	<!-- 是否对sql进行自动提交 -->
	<property name="defaultAutoCommit" value="true" />
</bean>

1.Bean的id为dataSource,对应的java类是BasicDataSource,这个类适用于配置基本类型的数据库连接,如果要想进行多数据源,那么该Bean对应的java类就得用DynamicDataSource。

2.destroy-method,表示当该连接销毁时候,会调用BasicDataSource类中的close方法。

3.driverClassName,url,username,password都是基本配置,这些属性的value值是通过外部的属性配置文件引入,具体怎么引入请参见http://blog.csdn.net/dreamrealised/article/details/9123199中的第三点propertyConfigurer。

4.接下来的属性与数据库连接池有关,数据库连接池的有关基础知识请参见http://blog.csdn.net/dreamrealised/article/details/9127563

1)initialSize,连接初始值,连接池启动时创建的连接数量的初始值

2)maxActive,连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制

3)maxIdle,最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 ,0时无限制

4)minIdle,最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请

5)poolPreparedStatements,是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存

6)defaultAutoCommit,是否对sql进行自动提交,进行事务管理的时候往往要关闭jdbc的自动提交功能,事务管理详见http://blog.csdn.net/dreamrealised/article/details/9123173


作者:dreamrealised 发表于2013-6-19 13:21:45 原文链接
阅读:97 评论:0 查看评论

    
[2]Spring笔记 - Bean xml装配
    来源: 互联网  发布时间: 2013-11-19
命名空间表

 

 

aop

Provides elements for declaring aspects and for automatically proxying @AspectJannotated classes as Spring aspects.

beans

The core primitive Spring namespace, enabling declaration of beans and how they
should be wired.

context

Comes with elements for configuring the Spring application context, including the abil-
ity to autodetect and autowire beans and injection of objects not directly managed by
Spring.

jee

Offers integration with Java EE APIs such as JNDI and EJB.

jms

Provides configuration elements for declaring message-driven POJOs.

lang

Enables declaration of beans that are implemented as Groovy, JRuby, or BeanShell
scripts.

mvc

Enables Spring MVC capabilities such as annotation-oriented controllers, view control-
lers, and interceptors.

oxm

Supports configuration of Spring’s object-to-XML mapping facilities.

tx

Provides for declarative transaction configuration.

util

A miscellaneous selection of utility elements. Includes the ability to declare collec-
tions as beans and support for property placeholder elements.

 

 

简单Bean配置

 

 

基本配置

<bean id="sonnet29" class="ch2_idol.Sonnet29"/>

 

构造器注入

<bean id="poeticJuggler" class="ch2_idol.PoeticJuggler">
  <constructor-arg value="15"/>
  <constructor-arg ref="sonnet29"/>
 </bean>

 

静态方法注入

<bean id="stage" class="ch2_idol.Stage" factory-method="getInstance"/>

 

scoping方式默认是单例singletons.

<bean id="ticket" class="com.springinaction.springidol.Ticket" scope="prototype"/>

singleton Scopes the bean definition to a single instance per Spring container (default). prototype Allows a bean to be instantiated any number of times (once per use). request Scopes a bean definition to an HTTP request. Only valid when used with a
web-capable Spring context (such as with Spring MVC). session Scopes a bean definition to an HTTP session. Only valid when used with a
web-capable Spring context (such as with Spring MVC). global-session Scopes a bean definition to a global HTTP session. Only valid when used in a portlet context.

 

初始化bean调用方法,销毁方法

<bean id="auditorium" class="ch2_idol.Auditorium" init-method="turnOnLights" destroy-method="turnOffLights"/>

也可以不配置,但实现InitializingBean ,DisposableBean接口

也可以在头部设置 default-init-method="turnOnLights"  default-destroy-method="turnOffLights"所有bean初始化时调用,除非它有

 

属性注入

<bean id="instrumentalist" class="ch2_idol.Instrumentalist" >
  <property name="song" value="JingleBells"></property>
  <property name="instrument" ref="saxophone"></property>
 </bean>

 

内部类

<bean id="kenny"  class="com.springinaction.springidol.Instrumentalist">
    <property name="song"value="JingleBells"/>
    <property name="instrument">
         <bean class="org.springinaction.springidol.Saxophone"/>
    </property>
</bean>

 

p标记

命名空间xmlns:p="http://www.springframework.org/schema/p

<bean id="kenny" class="com.springinaction.springidol.Instrumentalist"
p:song="JingleBells"
p:instrument-ref="saxophone"/>

 

集合

<list> Wiring a list of values, allowing duplicates <set> Wiring a set of values, ensuring no duplicates <map> Wiring a collection of name-value pairs where name and value can be of any type <props> Wiring a collection of name-value pairs where the name and value are both Strings

 <bean id="oneManBand1" class="ch2_idol.OneManBand">
  <property name="instruments">
   <list>
    <ref bean="saxophone"/>
    <ref bean="piano"/>
    <ref bean="piano"/>
   </list>
  </property>
 </bean>

 

<!-- 会去重 -->
 <bean id="oneManBand" class="ch2_idol.OneManBand">
  <property name="instruments">
   <set>
    <ref bean="saxophone"/>
    <ref bean="piano"/>
    <ref bean="piano"/>
   </set>
  </property>
 </bean>

 

 <property name="instruments">
  <map>
   <entry key="GUITAR" value-ref="guitar"/>
   <entry key="CYMBAL" value-ref="cymbal"/>
   <entry key="HARMONICA" value-ref="harmonica"/>
  </map>
 </property>
 
 <property name="instruments">
  <props>
   <prop key="GUITAR">STRUMSTRUMSTRUM</prop>
   <prop key="CYMBAL">CRASHCRASHCRASH</prop>
   <prop key="HARMONICA">HUMHUMHUM</prop>
  </props>
 </property>

 

空标记

<property name="instruments"><null/></property>

 

作者:tanxiang21 发表于2013-6-19 15:29:43 原文链接
阅读:52 评论:0 查看评论

    
[3]关于JavaEE ssh架构的一点小感悟
    来源: 互联网  发布时间: 2013-11-19

刚刚第一次整合完struts2+spring+hibernate,也就是传说中的ssh。从学java以来,就一直视ssh为神物。真的,第一次在哪听到的ssh我都忘了,但是一直觉得只有会用ssh,并且能整合一起用,这样才基本算是一个java程序员。今天终于完成了。真的也算是学习Java道路上的一个里程碑了。但是现在的心态已经是完全不同了,不再认为java最牛的就是ssh,不再认为只要会了ssh就能成为一个java程序员,要走的路还有很多。现在只是迈向了一个新的开始。


ssh的整合是一步步跟着马士兵老师的视频去做的,之前strust2,hibernate也算是比较熟了,开发过几个小的项目,都有使用过。但是spring是初学。这整个过程懒懒散散,拖了也蛮久,到今天才总算是真正整合完一个完整的小例子。


还记得原来的我,目光是多么的短浅,觉得javaEE架构,无非就是ssh,然后加上mvc的思想,然后分层。每一层与每一层分开,解除耦合。这样就是一个架构了。不否认,这是一个架构。但是庞大而臃肿,很多地方的代码完全是在浪费。是为了分层而分层。Action调用Service,Service调用Dao,很多时候,Service中的方法里也就只有一句代码,xxxDao.xxx();,没了。就这样,还分了interface接口,还有实现implementation。当然对于初学者,为了更好的理解分层的好处,接口带来的好处,这是可以的。但是,当我们学习到一定阶段,就一定要灵活的运用。千万不能把知识学死了!这是马老师经常说的。


在我们平时的小项目中,完全可以把这里面的很多东西进行省略。这样不仅加快了开发的节奏,代码量也少了。结构也可以清晰不少。


对于我们平时可以省略哪些,这是个见仁见智的问题。每个人的想法不同,就会有不同的做法。我在这也就不详细说了。如果大家有兴趣,可以私下交流。


当我们接到一个项目时,我们首先要做的是需求分析,继而设计出系统的架构。那设计架构最重要的到底是什么呢?当我们分析了需求之后,我们最好应该建立一个系统原型,也就是先把静态页面先做出来,这样可以更好的让客户了解自己的需求。他有了实物的参造,对自己的需求描述会清楚很多。接下来就是实体的设计了,也就是数据库表的设计。当然这里可以有两种方法,先建实体,通过实体关系,借助hibernate自动生成表结构。还有一种是先建表结构,再建实体。


一点小感悟,今天先写这么多吧。

作者:yzw19932010 发表于2013-6-19 20:27:21 原文链接
阅读:63 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3