只想知道 发表于 2015-1-18 11:10:02

JAVA编程:Spring 编程进门十年夜成绩解答

JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。编程|解答|成绩  1、怎样进修Spring?
  你能够经由过程以下路子进修spring:
  (1)spring下载包中doc目次下的MVC-step-by-step和sample目次下的例子都是对照好的spring开辟的例子。
  (2)AppFuse集成了今朝最盛行的几个开源轻量级框架大概工具Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,CanoosWebTest,StrutsMenu,DisplayTagLibrary,OSCache,JSTL,Struts。
  你能够经由过程AppFuse源代码来进修spring。
AppFuse网站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse
  (3)Spring开辟指南(夏昕)(http://www.xiaxin.net/Spring_Dev_Guide.rar)
  一本spring的进门书本,内里先容了反转把持和依附打针的观点,和spring的bean办理,spring的MVC,spring和hibernte,iBatis的分离。
  (4)spring进修的中文论坛
  SpringFramework中文论坛(http://spring.jactiongroup.net)
  Java视野论坛(http://forum.javaeye.com)的spring栏目
  2、使用Spring框架编程,console打印出log4j:WARNPleaseinitializethelog4jsystemproperly?
  申明你的log4j.properties没有设置。请把log4j.properties放到工程的classpath中,eclipse的classpath为bin目次,因为编译后src目次下的文件会拷贝到bin目次下,以是你能够把log4j.properties放到src目次下。
  这里给出一个log4j.properties的例子:
log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d%5p(%F:%L)-%m%n
  3、呈现java.lang.NoClassDefFoundError?
  一样平常情形下是因为你没有把需要的jar包放到lib中。
  好比你要接纳spring和hibernate(带事件撑持的话),你除spring.jar外还必要hibernat.jar、aopalliance.jar、cglig.jar、jakarta-commons下的几个jar包。
http://www.springframework.org/download.html下载spring开辟包,供应两种zip包
spring-framework-1.1.3-with-dependencies.zip和spring-framework-1.1.3.zip,我倡议你下载spring-framework-1.1.3-with-dependencies.zip。这个zip解紧缩后比后者多一个lib目次,个中有hibernate、j2ee、dom4j、aopalliance、jakarta-commons等经常使用包。
  4、java.io.FileNotFoundException:Couldnotopenclasspathresource[....hbm.xml],提醒找不到xml文件?
  缘故原由一样平常有两个:
  (1)该xml文件没有在classpath中。
  (2)applicationContext-hibernate.xml中的xml名字没有带包名。好比:
<beanid="sessionFactory"class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<propertyname="dataSource"><refbean="dataSource"/></property>
<propertyname="mappingResources">
 <list>
  <value>User.hbm.xml</value>
  错,改成:
  <value>com/yz/spring/domain/User.hbm.xml</value>
 </list>
</property>
<propertyname="hibernateProperties">
<props>
 <propkey="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
 <propkey="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
  5、org.springframework.beans.NotWritablePropertyException:InvalidpropertypostDaoofbeanclass?
  呈现非常的缘故原由是在application-xxx.xml中propertyname的毛病。
  <propertyname="....">中name的名字是与bean的set办法相干的,并且要注重巨细写。
  好比
publicclassPostManageImplextendsBaseManageimplementsPostManage{
 privatePostDAOdao=null;
 publicvoidsetPostDAO(PostDAOpostDAO){
  this.dao=postDAO;
 }
}
  那末xml的界说应当是:
<beanid="postManage"parent="txProxyTemplate">
<propertyname="target">
 <beanclass="com.yz.spring.service.implement.PostManageImpl">
  <propertyname="postDAO"><refbean="postDAO"/></property>对
  <propertyname="dao"><refbean="postDAO"/></property>错
 </bean>
</property>
</bean>
  6、Spring中怎样完成事件办理?
  起首,假如利用mysql,断定mysql为InnoDB范例。
  事件办理的把持应当放到贸易逻辑层。你能够写个处置贸易逻辑的JavaBean,在该JavaBean中挪用DAO,然后把该Bean的办法归入spring的事件办理。
  好比:xml文件界说以下:
<beanid="txProxyTemplate"abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<propertyname="transactionManager"><refbean="transactionManager"/></property>
<propertyname="transactionAttributes">
<props>
<propkey="save*">PROPAGATION_REQUIRED</prop>
<propkey="remove*">PROPAGATION_REQUIRED</prop>
<propkey="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<beanid="userManage"parent="txProxyTemplate">
 <propertyname="target">
  <beanclass="com.yz.spring.service.implement.UserManageImpl">
   <propertyname="userDAO"><refbean="userDAO"/></property>
  </bean>
 </property>
</bean>
  com.yz.spring.service.implement.UserManageImpl就是我们的完成贸易逻辑的JavaBean。我们经由过程parent元素声明其事件撑持。
  7、怎样办理Spring框架下更多的JavaBean?
  JavaBean越多,spring设置文件就越年夜,如许不容易保护。为了使设置明晰,我们能够将JavaBean分类办理,放在分歧的设置文件中。使用启动时将一切的xml同时加载。
  好比:
  DAO层的JavaBean放到applicationContext-hibernate.xml中,贸易逻辑层的JavaBean放到applicationContext-service.xml中。然后启动类中挪用以下代码载进一切的ApplicationContext。
String[]paths={"com/yz/spring/dao/hibernate/applicationContext-hibernate.xml",
"com/yz/spring/service/applicationContext-service.xml"};
ctx=newClassPathXmlApplicationContext(paths);
  8、web使用中怎样加载ApplicationContext?
  能够经由过程界说web.xml,由web容器主动加载。
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>
<param-value>/WEB-INF/applicationContext-service.xml</param-value>
</context-param>
  9、在spring中怎样设置的log4j?
  在web.xml中到场以下代码便可。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
  10、Spring框架进门的编程成绩办理了,我该怎样更深地了解Spring框架呢?
  这两本书你该往看看。这两本书是由Spring的作者RodJohnson编写的。
ExpertOneononeJ2EEDesignandDevelopment
ExpertOneononeJ2EEDevelopmentWithoutEJB
  你也该看看martinfowler的InversionofControlContainersandtheDependencyInjectionpattern。
http://www.martinfowler.com/articles/injection.html
 
  再好好研读一下spring的文档。
http://www.jactiongroup.net/reference/html/index.html(中文版,未全体翻译)
  另有就是多理论吧。

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。

若相依 发表于 2015-1-20 15:41:25

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

因胸联盟 发表于 2015-1-20 19:11:49

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

小魔女 发表于 2015-1-22 15:19:39

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

灵魂腐蚀 发表于 2015-1-31 05:48:43

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

分手快乐 发表于 2015-2-2 21:42:23

是一种突破用户端机器环境和CPU

金色的骷髅 发表于 2015-2-2 21:47:09

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

飘灵儿 发表于 2015-2-5 03:34:37

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

爱飞 发表于 2015-2-11 02:59:40

Java是一种计算机编程语言,拥有跨平台、面向对java

乐观 发表于 2015-2-11 08:14:57

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

变相怪杰 发表于 2015-3-2 01:03:50

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

冷月葬花魂 发表于 2015-3-11 01:20:42

是一种使网页(Web Page)产生生动活泼画面的语言

仓酷云 发表于 2015-3-17 17:41:14

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

若天明 发表于 2015-3-24 15:41:43

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页: [1]
查看完整版本: JAVA编程:Spring 编程进门十年夜成绩解答