GVKun编程网logo

JAVA 数据库读取blob(图片)合成多张图 基于Struts2和Spring(java从数据库读取图片)

27

对于JAVA数据库读取blob感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍图片合成多张图基于Struts2和Spring,并为您提供关于dwr和struts2和spring整合、dwr基于s

对于JAVA 数据库读取blob感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍图片合成多张图 基于Struts2和Spring,并为您提供关于dwr和struts2和spring整合、dwr基于struts2和spring2.5的配置详解、Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)、java – Struts2,JPA(hibernate支持),Spring …… Struts2和Spring都是通过log4j工作而不是hibernate的有用信息。

本文目录一览:

JAVA 数据库读取blob(图片)合成多张图 基于Struts2和Spring(java从数据库读取图片)

JAVA 数据库读取blob(图片)合成多张图 基于Struts2和Spring(java从数据库读取图片)

今天工作要求把存在数据库的图片(blob)读取出来,之前没有做过所以找了不少资源,在这里记录一下。因为用的是jdbcTemplate,在这里一起贴出来,以防忘了。因为数据库查出来的图片是多张图,在这里返回List,到前台再转成byte[]。有些方法是在查询时直接转成byte[]返回到页面,但这样只能返回一张图片。

''''''

[@Resource](https://my.oschina.net/u/929718)
private JdbcTemplate jdbcTemplate;

[@Override](https://my.oschina.net/u/1162528)
public List<Blob> getPicture(String picid) throws Exception {
	final List<Blob> list = new ArrayList<Blob>();
	String sql = "select picture from pic where picid = ? ";
	Object[] params = new Object[]{picid};
	jdbcTemplate.query(sql, params,new RowMapper(){
		public Object mapRow(ResultSet rs,int index)throws SQLException{
			Blob img = rs.getBlob(1);
			list.add(img);
			return null;
		}
	});
	if(list!=null&&list.size()>0){
		return list;
	}else{
		return null;
	}
}

''''''

因文在service层只是单纯的调用,就不贴出来了。在action层调用方法后,返回List<Blob>,用blob.getBinaryStream()获取InputStream,再将inputStream写入缓冲流BufferedInputStream,最后用ImageIO读取,并由ImageIO.read()传输到前台页面。 显而易见,如果是一张图片直接用上述方法传输就可以,但如果是多张图片,就会被覆盖。所以需要将图片拼在一起。因为工作要求,不可以存图片在服务器上,所以这里用流直接拼接图片,参考了网上的方法,自己改了一点就ok了。

''''''

public String getBlob() throws Exception{
List<Blob> blobs = gbs.getPicture(fileid);
	List<BufferedImage> images = new ArrayList<BufferedImage>();
	if(blobs!=null){
		for(int i=0;i<blobs.size();i++){
			//数据库拿到的blob转bufferedimage
			InputStream in = blobs.get(i).getBinaryStream();
			BufferedImage image = null;
			BufferedInputStream ins = new BufferedInputStream(in);
			image = ImageIO.read(ins);
			if(image!=null){
				images.add(image);
			}
		}
	}
	BufferedImage imagenew = yMerge("PNG",images);//Java纵向拼接多张图片
	if(imagenew!=null){
		//写入前台
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("image/png");
		response.setHeader("Pragma", "No-cache"); 
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		ImageIO.write(imagenew, "PNG", response.getOutputStream());
	}
	return null;
}
}
/**
 * Java纵向拼接多张图片
 *
 * [@param](https://my.oschina.net/u/2303379) imgs
 * [@param](https://my.oschina.net/u/2303379) type 图片类型
 * [@param](https://my.oschina.net/u/2303379) dst_pic
 * @return
 */
public static BufferedImage yMerge(String type, List<BufferedImage> images) {
    //获取需要拼接的图片长度
    int len = images.size();
    //判断长度是否大于0
    if (len < 1) {
        return null;
    }
    int[][] ImageArrays = new int[len][];
    for (int i = 0; i < len; i++) {
        int width = images.get(i).getWidth();
        int height = images.get(i).getHeight();
        // 从图片中读取RGB 像素
        ImageArrays[i] = new int[width * height];
        ImageArrays[i] = images.get(i).getRGB(0, 0, width, height, ImageArrays[i], 0, width);
    }

    int dst_height = 0;
    int dst_width = images.get(0).getWidth();
    //合成图片像素
    for (int i = 0; i < len; i++) {
        dst_width = dst_width > images.get(i).getWidth() ? dst_width : images.get(i).getWidth();
        dst_height += images.get(i).getHeight();
    }
    
    //合成后的图片
    if (dst_height < 1) {
        return null;
    }
    // 生成新图片
    BufferedImage ImageNew = null;
    try {
        ImageNew = new BufferedImage(dst_width, dst_height,BufferedImage.TYPE_INT_ARGB);
        //TYPE_INT_ARGB:生成图片的背景色为透明
        int height_i = 0;
        for (int i = 0; i < images.size(); i++) {
            ImageNew.setRGB(0, height_i, images.get(i).getWidth(), images.get(i).getHeight(),
            		ImageArrays[i], 0, images.get(i).getWidth());// dst_width
            height_i += images.get(i).getHeight();
        }

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    return ImageNew;
}

''''''

struts2中配置

''''''

	<action name = "getPicture"method = "getPicture">
		<result name="success" type="stream">
			<!-- 文件格式定义 -->
			<param name="contentType">application/octet-stream</param>
			<param name="inputName">inputStream</param>
			<param name="contentDisposition">attachment;filename=${fileName}</param>
			<param name="bufferSize">1024</param>
		</result>
	</action>

''''''

JSP页面

<img alt="图片" src="<%=basePath%>/getPicture.action">

参考文章:https://blog.csdn.net/luckgl/article/details/77054218

dwr和struts2和spring整合

dwr和struts2和spring整合

dwr.xml文件:
 <!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting3.0//EN"

    "http://getahead.org/dwr/dwr30.dtd">
 <dwr>
 <allow>


    <!-- spring整合dwr。修改两处:creator改为spring。param名字改为beanName! -->

    <create creator="spring" javascript="messageDao">

      <param name="beanName" value="messageDao"/>

    </create>

     <!--<convertconverter="bean" match="com.bjsxt.dwr.User"/>

  --></allow>

</dwr>
1.      在struts.xml中增加:
<constant name="struts.action.excludePattern"value="/dwr/.*,/dwr/test/.*" />



dwr基于struts2和spring2.5的配置详解

dwr基于struts2和spring2.5的配置详解

第一步:web.xml配置;
<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
            <param-name>crossDomainSessionSecurity</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>allowScriptTagRemoting</param-name>
            <param-value>true</param-value>
        </init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

因为SSH框架集成了struts2,此处必须配置不让struts2拦截掉/dwr/*的action,需要作第二步配置。
第二步:struts.xml配置
<constant name="struts.action.excludePattern" value="/dwr/.*,/dwr/test/.*"></constant>

用以使struts不拦截/dwr/.*的请求
第三步:spring的applicationContext.xml配置
1)、增加命名空间
	xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
	xmlns:dwra="http://www.directwebremoting.org/schema/spring-dwr-annotations"

2)、
http://www.directwebremoting.org/schema/spring-dwr
    http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd
    http://www.directwebremoting.org/schema/spring-dwr-annotations    
  	http://www.directwebremoting.org/schema/spring-dwr-annotations.xsd 

3)、
<context:annotation-config/>
	<context:component-scan base-package="com.gd.service.impl" />
	<dwr:configuration />
	 
	<dwr:annotation-scan base-package="com.gd.service.impl" scanDataTransferObject="true" scanRemoteProxy="true" />

第四步:接口编写加注解:
@RemoteProxy(creator = SpringCreator.class,name = "DWRService")
public class TmEduExaminationInfoManagerImpl implements
		ITmEduExaminationInfoManager 


@RemoteMethod
	public String queryInfo(String str){
		return "hello " + str;
	}

注:必须有接口及其实现类
第五步:jsp页面调用
1)、引用js
<script type='text/javascript' src='dwr/engine.js'></script> 
<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript' src='dwr/interface/DWRService.js'></script>

2)、JS调用
DWRService.queryInfo("你是谁",function(flag){  
	    if(flag){  
	    	alert(flag);  
	    }else{  
	     	alert(flag);  
	    }  
   	});  

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3


现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了struts1框架的项目快,带着这些疑惑,我对各类MVC框架的做了一个简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考。

 

测试环境:CPU:酷睿2 T5750,内存:DDR2-667 2G,Web容器:Tomcat6.0,最大线程数设置为1000,操作系统:WinXP-sp3

测试步骤:搭建6个Web工程,如下:

1.纯JSP:不包含任何MVC框架,只有一个测试用的JSP页面。

2.struts1:包含一个Action,不做任何逻辑处理,直接转发到一个JSP页面

3.struts2 JSP:不包含Action,只包含测试JSP页面,直接访问该页面。

4.struts2 单例Action:采用Spring来管理Struts2的Action实例,并配置成单例模式。

5.struts2 多例Action:采用Spring来管理Struts2的Action实例,并配置成单例模式。

6.SpringMVC3:采用Spring来管理Controller实例,包含一个Controller,不做逻辑处理,收到请求后,直接返回到一个JSP页面。

测试结果:

 

说明:以上测试虽不是非常的精确,但基本能说明一定的问题。每个JSP页面和Action都不包含任何的业务逻辑代码,只是请求转发。每轮测试取三次总时间的平均值。所有工程的测试均全部完成并正常处理请求,没有请求拒绝情况发生。

结论:

1.纯JSP的性能应该最高,这不难理解,JSP被编译成Servlet后,没有任何多余的功能,收到请求后直接处理。(这也验证一句经典的话:越原始效率就越高。)

 

2.struts1的性能是仅次于纯JSP的,由于struts1采用单例Action模式,且本身的封装相比struts2应该说简单很多,虽然开发效率不如struts2,但已经过多年的实践考验,性能稳定高效。

 

3.相比来说struts2的性能就比较差了,这不难理解,struts2之所以开发方便,是由于采用值栈、OGNL表达式、拦截器等技术对请求参数的映射和返回结果进行了处理,另外还采用大量的标签库等,这些都无疑增加了处理的时间。因此降低了效率。在我们实际的项目中,我测试本地工程访问每秒处理请求数只能达到35左右,应该说还有不少可优化的空间。

 

4.很多人认为struts2性能差是因为它的多例Action模式导致的,但我们采用spring管理struts2的Action,并设置按单例方式生成Action实例后,发现其性能有所提高,但并不是很明显。由此可见,多例Action模式并不是struts2性能瓶颈所在。另外,我们在 struts2中采用JSP方式访问,发现其性能依旧和没有采用任何MVC框架的纯JSP之间存在好几倍的差距,这又从另一个侧面证实了我们刚才得出结论,struts2性能的瓶颈不在于它的多例Action模式。       

 

5.SpringMVC3的性能略逊于struts1,但基本是同级别的,这让人眼前一亮,springMVC有着不比struts2差的开发效率和解耦度,但性能却是struts2的好几倍,这让我们灰常振奋,SpringMVC无疑又是项目开发的一个好的选择。唯一的问题就是,目前国内使用面还不太多,各方面的参考资料相对较少,上手的话可能要稍微难点。


java – Struts2,JPA(hibernate支持),Spring …… Struts2和Spring都是通过log4j工作而不是hibernate

java – Struts2,JPA(hibernate支持),Spring …… Struts2和Spring都是通过log4j工作而不是hibernate

编辑3:它正在工作!长话短说:在glassfish lib文件夹中有:slf4j-api-1.5.8.jar和jlf4j-jdk14-1.5.8.jar!无论如何我把它们移到了在lib下创建的“旧”文件夹中,然后将以下内容复制到文件夹中:

slf4j-api-1.6.1.jar
SLF4J-log4j12-1.6.1.jar
JCL-过SLF4J-1.6.1.jar
log4j的-1.2.16.jar
(正如我在类路径中所拥有的那样,但现在到了应用程序服务器,一切都按预期工作)

我也可以将log4j.xml文件放入glassfish中,但我只是将它留给我的应用程序,这样我就可以进行特定于应用程序的日志记录.

我将提供一个答案,重新修改问题,使其更有用(目前过多的信息没有用).

更新:我会自我回答,但已经等了很久.接受史蒂文斯回答,因为这是最有帮助的,同时搞清楚这一点.

以下是历史……

  

编辑2:我不知道为什么,但它可能与glafish v3上部署有关. Glassfish使用Java实用日志,这是一张图片http://blog.saddey.net/2010/03/27/how-to-deploy-a-grails-application-to-glassfish/,描述了一些Grails人员为了使日志工作所做的事情(不是我使用grails),也许使用jul更有意义,如图所示?

如果我在不删除app frist的情况下重新部署,我也会收到这些错误:

SEVERE: log4j:ERROR log4j called after unloading,see http://logging.apache.org/log4j/1.2/faq.html#unload.
SEVERE: java.lang.IllegalStateException: Class invariant violation

编辑,我仍然卡住了:

Logging适用于Spring和Struts2,但我无法使用log4j打印出sql(或其他任何东西),这很重要因为虽然我可以使用< property name =“hibernate.show_sql来使用hibernate来打印SQL “value =”true“/>在persistence.xml中,显示sql参数的唯一方法是通过日志记录,这对我来说至关重要.

为了更加清楚,当应用程序启动时会有一些与hibernate相关的信息消息,但是当我查询数据库时,没有显示任何内容.

因为我疯了,我会列出我的pom,log4j.xml,applicationContext.xml,如果我有时间,我会提供链接到我访问过的很多网站(包括SO Q& A).

的pom.xml

一个显而易见的问题是伐木罐到底是什么,答案是:
jcl-over-slf4j-1.6.1.jar,slf4j-log4j12-1.6.1.jar,log4j-1.2.16.jar和slf4j-api-1.6.1(我也排除了commons-logging)…也试了版本1.5.8 for jcl-over-slf4j,slf4j-api.

.sourceEncoding>UTF-8.sourceEncoding>
        browser-plugincope>providedcope>
        slf4j-apicope>providedcope>
        cope>testcope>
        figuration>
                    irs>${endorsed.dir}irs>
                    figuration>
            figuration>
                    figuration>
            copyfiguration>
                            figuration>
                    figuration>
                    taskdef name="instrument" classname="org.hibernate.tool.instrument.javassist.InstrumentTask">
                            sspath>
                                sspath" />
                                sspath" />
                            sspath>
                        taskdef>
                        figuration>
            

的log4j.xml

spring-beans.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/schema/jdbc
            http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/jee 
            http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
    fig/>            
    MysqLDataSource" />

    factorybean">
        

启动时打印到控制台的内容:

INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Hibernate Annotations 3.5.0-Final
INFO: Hibernate 3.5.0-Final
INFO: hibernate.properties not found
INFO: Bytecode provider name : javassist
INFO: using JDK 1.4 java.sql.Timestamp handling
INFO: Hibernate Commons Annotations 3.2.0.Final
INFO: Hibernate EntityManager 3.5.0-Final

...removed logging for peristence unit which was mostly just pages of "Binding Named query:..."

INFO: Hibernate Validator not found: ignoring
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
INFO: Using provided datasource
INFO: RDBMS: DB2 UDB for AS/400,version: 06.01.0000 V6R1m0
INFO: JDBC driver: AS/400 ToolBox for Java JDBC Driver,version: 9.4
INFO: Using dialect: org.hibernate.dialect.DB2400Dialect
INFO: disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
INFO: Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
INFO: instantiating TransactionManagerLookup: org.hibernate.transaction.SunONETransactionManagerLookup
INFO: instantiated TransactionManagerLookup
INFO: Automatic flush during beforeCompletion(): disabled
INFO: Automatic session close at end of transaction: disabled
INFO: Scrollable result sets: enabled
INFO: JDBC3 getGeneratedKeys(): enabled
INFO: Connection release mode: auto
INFO: Default batch fetch size: 1
INFO: Generate sql with comments: disabled
INFO: Order sql updates by primary key: disabled
INFO: Order sql inserts for batching: disabled
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO: Using ASTQueryTranslatorFactory
INFO: Query language substitutions: {}
INFO: JPA-QL strict compliance: enabled
INFO: Second-level cache: enabled
INFO: Query cache: disabled
INFO: Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
INFO: Optimize cache for minimal puts: disabled
INFO: Structured second-level cache entries: disabled
INFO: Statistics: disabled
INFO: Deleted entity synthetic identifier rollback: disabled
INFO: Default entity-mode: pojo
INFO: Named query checking : enabled
INFO: Check Nullability in Core (should be disabled when Bean Validation is on): disabled
INFO: building session factory
INFO: Not binding factory to JNDI,no JNDI name configured
INFO: JNDI InitialContext properties:{}
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root WebApplicationContext
INFO: Root WebApplicationContext: initialization started
INFO: Refreshing Root WebApplicationContext: startup date [Wed Jul 27 15:04:50 MDT 2011]; root of context hierarchy
INFO: Loading XML bean deFinitions from class path resource [applicationContext.xml]
INFO: JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning
INFO: JSR-330 'javax.inject.Named' annotation found and supported for component scanning
INFO: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
INFO: Building JPA container EntityManagerFactory for persistence unit 'co05in'

...removed logging for peristence unit which was mostly just pages of "Binding Named query:..."

INFO: Hibernate Validator not found: ignoring
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
INFO: Using provided datasource
INFO: RDBMS: DB2 UDB for AS/400,no JNDI name configured
INFO: JNDI InitialContext properties:{}
INFO: Bean 'entityManagerFactory' of type [class org.springframework.orm.jpa.LocalContainerEntityManagerfactorybean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListablebeanfactory@5ecada2f: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalrequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,dataSource,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,entityManagerFactory,transactionManager,inventoryService,codeService,orderService,addressService,partService,pickTicketService,employeeService,batchService,rateCodeService,payPeriodService,basicORMParser,org.springframework.aop.config.internalAutoproxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy
INFO: Using JTA UserTransaction: com.sun.enterprise.transaction.UserTransactionImpl@72ae2192
INFO: Using JTA TransactionManager: com.sun.enterprise.transaction.TransactionManagerHelper@61e3310
INFO: Using JTA TransactionSynchronizationRegistry: com.sun.enterprise.transaction.TransactionSynchronizationRegistryImpl@2877770c
INFO: Root WebApplicationContext: initialization completed in 4725 ms
INFO: Parsing configuration file [struts-default.xml]
INFO: Parsing configuration file [struts-plugin.xml]
INFO: Parsing configuration file [struts.xml]
INFO: Initializing Struts-Spring integration...
INFO: Setting autowire strategy to name
INFO: ... initialized Struts-Spring integration successfully
INFO: WEB0671: Loading application [com.aerose_PartGroupMaster_war_2011.04.12] at [/com.aerose_PartGroupMaster_war_2011.04.12]
INFO: com.aerose_PartGroupMaster_war_2011.04.12 was successfully deployed in 25,884 milliseconds.
INFO: log4j: reset attribute= "false".
INFO: log4j: Threshold ="null".
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [com.opensymphony] additivity to [true].
INFO: log4j: Level value for com.opensymphony is  [ERROR].
INFO: log4j: com.opensymphony level set to ERROR
INFO: log4j: Class name: [org.apache.log4j.ConsoleAppender]
INFO: log4j: Setting property [target] to [System.out].
INFO: log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
INFO: log4j: Setting property [conversionPattern] to [%d{ABSOLUTE} %5p %c{1}:%L - %m%n].
INFO: log4j: Adding appender named [STDOUT] to category [com.opensymphony].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.apache.struts2] additivity to [true].
INFO: log4j: Level value for org.apache.struts2 is  [ERROR].
INFO: log4j: org.apache.struts2 level set to ERROR
INFO: log4j: Adding appender named [STDOUT] to category [org.apache.struts2].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.hibernate] additivity to [true].
INFO: log4j: Level value for org.hibernate is  [TRACE].
INFO: log4j: org.hibernate level set to TRACE
INFO: log4j: Adding appender named [STDOUT] to category [org.hibernate].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.hibernate.hql] additivity to [true].
INFO: log4j: Level value for org.hibernate.hql is  [TRACE].
INFO: log4j: org.hibernate.hql level set to TRACE
INFO: log4j: Adding appender named [STDOUT] to category [org.hibernate.hql].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.hibernate.sql] additivity to [true].
INFO: log4j: Level value for org.hibernate.sql is  [TRACE].
INFO: log4j: org.hibernate.sql level set to TRACE
INFO: log4j: Adding appender named [STDOUT] to category [org.hibernate.sql].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.hibernate.type] additivity to [true].
INFO: log4j: Level value for org.hibernate.type is  [TRACE].
INFO: log4j: org.hibernate.type level set to TRACE
INFO: log4j: Adding appender named [STDOUT] to category [org.hibernate.type].
INFO: log4j: Retreiving an instance of org.apache.log4j.Logger.
INFO: log4j: Setting [org.springframework] additivity to [true].
INFO: log4j: Level value for org.springframework is  [WARN].
INFO: log4j: org.springframework level set to WARN
INFO: log4j: Adding appender named [STDOUT] to category [org.springframework].
INFO: log4j: Level value for root is  [INFO].
INFO: log4j: root level set to INFO
INFO: log4j: Adding appender named [STDOUT] to category [root].
最佳答案
我从我的一个旧项目中提取了这些依赖项.根据您的项目升级版本.

示例Maven依赖项

总结

以上是小编为你收集整理的java – Struts2,JPA(hibernate支持),Spring …… Struts2和Spring都是通过log4j工作而不是hibernate全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

关于JAVA 数据库读取blob图片合成多张图 基于Struts2和Spring的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于dwr和struts2和spring整合、dwr基于struts2和spring2.5的配置详解、Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)、java – Struts2,JPA(hibernate支持),Spring …… Struts2和Spring都是通过log4j工作而不是hibernate等相关知识的信息别忘了在本站进行查找喔。

本文标签: