锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产视频久久,JLZZJLZZ亚洲乱熟无码,色噜噜噜噜亚洲第一http://www.tkk7.com/phoebird/category/41399.html鍕ょ粌鍐呭姛錛屼笉鏂疄璺墊嫑鏁般備簤鍙栨棭鏃ユ垚涓烘鏋楅珮鎵嬨?/description>zh-cnSun, 13 Sep 2009 15:36:38 GMTSun, 13 Sep 2009 15:36:38 GMT60Spring 2.5鏁村悎 hibernate3.3http://www.tkk7.com/phoebird/archive/2009/09/13/294941.html絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author>Sun, 13 Sep 2009 08:38:00 GMThttp://www.tkk7.com/phoebird/archive/2009/09/13/294941.htmlhttp://www.tkk7.com/phoebird/comments/294941.htmlhttp://www.tkk7.com/phoebird/archive/2009/09/13/294941.html#Feedback0http://www.tkk7.com/phoebird/comments/commentRss/294941.htmlhttp://www.tkk7.com/phoebird/services/trackbacks/294941.htmlpackage cn.itcast.bean;

public class Person {

 private Integer id;
 private String name;
 
 public Person(){
  
 }
 
 public Person(String name) {
  this.name=name;
 }
 
   getter&&setter鏂規(guī)硶 
}


Person.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.bean">
 <class name="Person" table="person">
 
  <id name="id" type="integer">
   <generator class="native"></generator>
  </id>
  <property name="name" length="10" not-null="true">
  </property>
 </class>

</hibernate-mapping>

瀹氫箟涓氬姟鎺ュ彛

package cn.itcast.service;

import java.util.List;

import cn.itcast.bean.Person;

public interface IPersonService {

 /**
  * 淇濆瓨浜哄憳淇℃伅
  * @param person
  */
 public abstract void save(Person person);

 /**
  * 鏇存柊淇℃伅
  * @param person
  */
 public abstract void update(Person person);

 /**
  * 鑾峰彇浜哄憳
  * @param personId
  * @return
  */
 public abstract Person getPerson(Integer personId);

 /**
  * 鍒犻櫎浜哄憳淇℃伅
  * @param personId
  */
 public abstract void delete(Integer personId);

 /**
  * 鑾峰彇浜哄憳鍒楄〃
  * @return
  */
 public abstract List<Person> getPersons();

}


涓氬姟瀹炵幇綾?br />

package cn.itcast.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.bean.Person;
import cn.itcast.service.IPersonService;

/**
 * 涓氬姟灞傦紝閲囩敤娉ㄨВ澹版槑浜嬪姟
 *
 * @author Administrator
 *
 */
@Transactional
public class PersonServiceBean implements IPersonService {

 @Resource
 private SessionFactory sessionFactory;

 public void save(Person person) {

  // 浠巗pring 瀹瑰櫒涓緱鍒版鍦ㄧ鐞嗙殑sessionFactory,persist鏂規(guī)硶鐢ㄤ簬淇濆瓨瀹炰綋

  sessionFactory.getCurrentSession().persist(person);

 }

 public void update(Person person) {
  sessionFactory.getCurrentSession().merge(person);
 }
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
 public Person getPerson(Integer personId) {
  return (Person) sessionFactory.getCurrentSession().get(Person.class,
    personId);
 }

 public void delete(Integer personId) {
  sessionFactory.getCurrentSession()
    .delete(
      sessionFactory.getCurrentSession().load(Person.class,
        personId));
 }
 @Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
 @SuppressWarnings("unchecked")
 public List<Person> getPersons() {
  return sessionFactory.getCurrentSession().createQuery("from Person")
    .list();
 }

}


hibernate && spring鐨勯厤緗枃浠?br /> beans.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
 - Application context definition for JPetStore's business layer.
 - Contains bean references to the transaction manager and to the DAOs in
 - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

 <context:annotation-config />
 <!-- 閰嶇疆鏁版嵁婧?-->
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName"
   value="org.gjt.mm.mysql.Driver" />
  <property name="url"
   value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&amp;characterEncoding=UTF-8" />
  <property name="username" value="root" />
  <property name="password" value="" />
  <!-- 榪炴帴姹犲惎鍔ㄦ椂鐨勫垵濮嬪?-->
  <property name="initialSize" value="1" />
  <!-- 榪炴帴姹犵殑鏈澶у?-->
  <property name="maxActive" value="500" />
  <!-- 鏈澶х┖闂插?褰撶粡榪囦竴涓珮宄版椂闂村悗錛岃繛鎺ユ睜鍙互鎱㈡參灝嗗凡緇忕敤涓嶅埌鐨勮繛鎺ユ參鎱㈤噴鏀句竴閮ㄥ垎錛屼竴鐩村噺灝戝埌maxIdle涓烘 -->
  <property name="maxIdle" value="2" />
  <!--  鏈灝忕┖闂插?褰撶┖闂茬殑榪炴帴鏁板皯浜庨榾鍊兼椂錛岃繛鎺ユ睜灝變細(xì)棰勭敵璇峰幓涓浜涜繛鎺ワ紝浠ュ厤媧嘲鏉ユ椂鏉ヤ笉鍙?qiáng)鐢宠?-->
  <property name="minIdle" value="1" />
 </bean>

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource" /><!-- 灝哾atasource娉ㄥ叆鍒皊essionFactory -->
  <property name="mappingResources">
   <list>
    <value>cn/itcast/bean/Person.hbm.xml</value>
   </list>
  </property>
  <property name="hibernateProperties">
   <value>
    hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    hibernate.hbm2ddl.auto=update hibernate.show_sql=false
    hibernate.format_sql=false
   </value>
  </property>
 </bean>

 <!--  閫氳繃浜嬪姟綆$悊 綆$悊sessionFactory -->
 <bean id="txManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">

  <property name="sessionFactory" ref="sessionFactory" />
 </bean>

 <tx:annotation-driven transaction-manager="txManager" />
 <bean id="personServiceBean"
  class="cn.itcast.service.impl.PersonServiceBean">
 </bean>
</beans>



/**
嫻嬭瘯綾?*/

package junit;


import java.util.List;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.bean.Person;
import cn.itcast.service.IPersonService;

public class IPersonServiceTest {

 private static IPersonService ipersonservice;
 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
  try {
   ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
   ipersonservice=(IPersonService)ctx.getBean("personServiceBean");
  } catch (RuntimeException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 @Test
 public void TestSave(){
  
  ipersonservice.save(new Person("灝忓紶"));
  System.out.println("淇濆瓨鎴愬姛");
 }

 @Test public void testGetPerson(){
  Person person=ipersonservice.getPerson(1);
  System.out.println(person.getName());
 }
 
 @Test public void testUpdate(){
  Person person=ipersonservice.getPerson(1);
  person.setName("灝忎附");
  ipersonservice.update(person);
 }
 
 @Test public void testGetPersons(){
  List<Person> persons=ipersonservice.getPersons();
  for(Person person : persons){
   System.out.println(person.getId()+"  :" +person.getName());
  }
 }
 
 @Test public void testDelete(){
  ipersonservice.delete(1);
 }
}

table :person
id  int
name varchar



]]>
spring 涓ょ鍒囬潰澹版槑鏂瑰紡http://www.tkk7.com/phoebird/archive/2009/09/02/293570.html絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author>Wed, 02 Sep 2009 04:14:00 GMThttp://www.tkk7.com/phoebird/archive/2009/09/02/293570.htmlhttp://www.tkk7.com/phoebird/comments/293570.htmlhttp://www.tkk7.com/phoebird/archive/2009/09/02/293570.html#Feedback0http://www.tkk7.com/phoebird/comments/commentRss/293570.htmlhttp://www.tkk7.com/phoebird/services/trackbacks/293570.html       鍩轟簬XML閰嶇疆鏂瑰紡澹版槑鍒囬潰銆?br />       鍩轟簬娉ㄨВ鏂瑰紡澹版槑鍒囬潰銆?br /> 瑕佽繘琛孉OP緙栫▼錛岄鍏堟垜浠鍦╯pring鐨勯厤緗枃浠朵腑寮曞叆aop鍛藉悕絀洪棿錛?br /> <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
</beans>


鍩轟簬娉ㄨВ鏂瑰紡澹版槑鍒囬潰

@Aspect
public class LogPrint {
 @Pointcut("execution(* cn.itcast.service..*.*(..))")
 private void anyMethod() {}//澹版槑涓涓垏鍏ョ偣 
 @Before("anyMethod() && args(userName)")//瀹氫箟鍓嶇疆閫氱煡
 public void doAccessCheck(String userName) {
 } 
 @AfterReturning(pointcut="anyMethod()",returning="revalue")//瀹氫箟鍚庣疆閫氱煡
 public void doReturnCheck(String revalue) {
 }
 @AfterThrowing(pointcut="anyMethod()", throwing="ex")//瀹氫箟渚嬪閫氱煡
    public void doExceptionAction(Exception ex) {
 }
 @After("anyMethod()")//瀹氫箟鏈緇堥氱煡
 public void doReleaseAction() {
 }
 @Around("anyMethod()")//鐜粫閫氱煡
 public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
  return pjp.proceed();
 }
}



鍩轟簬鍩轟簬XML閰嶇疆鏂瑰紡澹版槑鍒囬潰


public class LogPrint {
 public void doAccessCheck() {}瀹氫箟鍓嶇疆閫氱煡
 public void doReturnCheck() {}瀹氫箟鍚庣疆閫氱煡
    public void doExceptionAction() {}瀹氫箟渚嬪閫氱煡
 public void doReleaseAction() {}瀹氫箟鏈緇堥氱煡
 public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
  return pjp.proceed();鐜粫閫氱煡
 }
}


<bean id="orderservice" class="cn.itcast.service.OrderServiceBean"/>
<bean id="log" class="cn.itcast.service.LogPrint"/>
<aop:config>
  <aop:aspect id="myaop" ref="log">
   <aop:pointcut id="mycut" expression="execution(* cn.itcast.service..*.*(..))"/>
   <aop:before pointcut-ref="mycut" method="doAccessCheck"/>
   <aop:after-returning pointcut-ref="mycut" method="doReturnCheck "/>
   <aop:after-throwing pointcut-ref="mycut" method="doExceptionAction"/>
   <aop:after pointcut-ref="mycut" method=“doReleaseAction"/>
   <aop:around pointcut-ref="mycut" method="doBasicProfiling"/>
  </aop:aspect>
</aop:config>
 



]]>
杞澆 Spring鐨勬灦鏋?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/28/292930.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Fri, 28 Aug 2009 01:53:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/28/292930.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292930.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/28/292930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292930.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292930.html</trackback:ping><description><![CDATA[杞澆錛歨ttp://hi.baidu.com/panqf/blog/item/b0db04874b1ccb2bc65cc313.html<br /> <br />  Spring 妗嗘灦鏄竴涓垎灞傛灦鏋勶紝鐢?7 涓畾涔夎壇濂界殑妯″潡緇勬垚銆係pring 妯″潡鏋勫緩鍦ㄦ牳蹇冨鍣ㄤ箣涓婏紝鏍稿績瀹瑰櫒瀹氫箟浜嗗垱寤恒侀厤緗拰綆$悊 bean 鐨勬柟寮忥紝濡傚浘 1 鎵紺恒?br /> <a name="fig1"><strong>鍥?1. Spring 妗嗘灦鐨?7 涓ā鍧?/strong></a><br /> <img height="288" alt="Spring 妗嗘灦鍥劇ず" src="http://www.ibm.com/developerworks/cn/java/wa-spring1/spring_framework.gif" width="555" /> <br /> <p>緇勬垚 Spring 妗嗘灦鐨勬瘡涓ā鍧楋紙鎴栫粍浠訛級閮藉彲浠ュ崟鐙瓨鍦紝鎴栬呬笌鍏朵粬涓涓垨澶氫釜妯″潡鑱斿悎瀹炵幇銆傛瘡涓ā鍧楃殑鍔熻兘濡備笅錛?</p> <ul> <li><strong>鏍稿績瀹瑰櫒</strong>錛氭牳蹇冨鍣ㄦ彁渚?Spring 妗嗘灦鐨勫熀鏈姛鑳姐傛牳蹇冨鍣ㄧ殑涓昏緇勪歡鏄?<code>BeanFactory</code>錛屽畠鏄伐鍘傛ā寮忕殑瀹炵幇銆?code>BeanFactory</code> 浣跨敤<em>鎺у埗鍙嶈漿</em> 錛圛OC錛?妯″紡灝嗗簲鐢ㄧ▼搴忕殑閰嶇疆鍜屼緷璧栨ц鑼冧笌瀹為檯鐨勫簲鐢ㄧ▼搴忎唬鐮佸垎寮銆? <li><strong>Spring 涓婁笅鏂?/strong>錛歋pring 涓婁笅鏂囨槸涓涓厤緗枃浠訛紝鍚?Spring 妗嗘灦鎻愪緵涓婁笅鏂囦俊鎭係pring 涓婁笅鏂囧寘鎷紒涓氭湇鍔★紝渚嬪 JNDI銆丒JB銆佺數(shù)瀛愰偖浠躲佸浗闄呭寲銆佹牎楠屽拰璋冨害鍔熻兘銆? <li><strong>Spring AOP</strong>錛?閫氳繃閰嶇疆綆$悊鐗規(guī)э紝Spring AOP 妯″潡鐩存帴灝嗛潰鍚戞柟闈㈢殑緙栫▼鍔熻兘闆嗘垚鍒頒簡 Spring 妗嗘灦涓傛墍浠ワ紝鍙互寰堝鏄撳湴浣?Spring 妗嗘灦綆$悊鐨勪換浣曞璞℃敮鎸?AOP銆係pring AOP 妯″潡涓哄熀浜?Spring 鐨勫簲鐢ㄧ▼搴忎腑鐨勫璞℃彁渚涗簡浜嬪姟綆$悊鏈嶅姟銆傞氳繃浣跨敤 Spring AOP錛屼笉鐢ㄤ緷璧?EJB 緇勪歡錛屽氨鍙互灝嗗0鏄庢т簨鍔$鐞嗛泦鎴愬埌搴旂敤紼嬪簭涓? <li><strong>Spring DAO</strong>錛欽DBC DAO 鎶借薄灞傛彁渚涗簡鏈夋剰涔夌殑寮傚父灞傛緇撴瀯錛屽彲鐢ㄨ緇撴瀯鏉ョ鐞嗗紓甯稿鐞嗗拰涓嶅悓鏁版嵁搴撲緵搴斿晢鎶涘嚭鐨勯敊璇秷鎭傚紓甯稿眰嬈$粨鏋勭畝鍖栦簡閿欒澶勭悊錛屽茍涓旀瀬澶у湴闄嶄綆浜嗛渶瑕佺紪鍐?鐨勫紓甯鎬唬鐮佹暟閲忥紙渚嬪鎵撳紑鍜屽叧闂繛鎺ワ級銆係pring DAO 鐨勯潰鍚?JDBC 鐨勫紓甯擱伒浠庨氱敤鐨?DAO 寮傚父灞傛緇撴瀯銆? <li><strong>Spring ORM</strong>錛歋pring 妗嗘灦鎻掑叆浜嗚嫢騫蹭釜 ORM 妗嗘灦錛屼粠鑰屾彁渚涗簡 ORM 鐨勫璞″叧緋誨伐鍏鳳紝鍏朵腑鍖呮嫭 JDO銆丠ibernate 鍜?iBatis SQL Map銆傛墍鏈夎繖浜涢兘閬典粠 Spring 鐨勯氱敤浜嬪姟鍜?DAO 寮傚父灞傛緇撴瀯銆? <li><strong>Spring Web 妯″潡</strong>錛歐eb 涓婁笅鏂囨ā鍧楀緩绔嬪湪搴旂敤紼嬪簭涓婁笅鏂囨ā鍧椾箣涓婏紝涓哄熀浜?Web 鐨勫簲鐢ㄧ▼搴忔彁渚涗簡涓婁笅鏂囥傛墍浠ワ紝Spring 妗嗘灦鏀寔涓?Jakarta Struts 鐨勯泦鎴愩俉eb 妯″潡榪樼畝鍖栦簡澶勭悊澶氶儴鍒嗚姹備互鍙?qiáng)灏嗚h眰鍙傛暟緇戝畾鍒板煙瀵硅薄鐨勫伐浣溿? <li><strong>Spring MVC 妗嗘灦</strong>錛歁VC 妗嗘灦鏄竴涓叏鍔熻兘鐨勬瀯寤?Web 搴旂敤紼嬪簭鐨?MVC 瀹炵幇銆傞氳繃絳栫暐鎺ュ彛錛孧VC 妗嗘灦鍙樻垚涓洪珮搴﹀彲閰嶇疆鐨勶紝MVC 瀹圭撼浜嗗ぇ閲忚鍥炬妧鏈紝鍏朵腑鍖呮嫭 JSP銆乂elocity銆乀iles銆乮Text 鍜?POI銆?</li> </ul> <p>        Spring 妗嗘灦鐨勫姛鑳藉彲浠ョ敤鍦ㄤ換浣?J2EE 鏈嶅姟鍣ㄤ腑錛屽ぇ澶氭暟鍔熻兘涔熼傜敤浜庝笉鍙楃鐞嗙殑鐜銆係pring 鐨勬牳蹇冭鐐規(guī)槸錛氭敮鎸佷笉緇戝畾鍒扮壒瀹?J2EE 鏈嶅姟鐨勫彲閲嶇敤涓氬姟鍜屾暟鎹闂璞°傛鏃犵枒闂紝榪欐牱鐨勫璞″彲浠ュ湪涓嶅悓 J2EE 鐜 錛圵eb 鎴?EJB錛夈佺嫭绔嬪簲鐢ㄧ▼搴忋佹祴璇曠幆澧冧箣闂撮噸鐢ㄣ?<br /> </p> <p><br /> </p> <img src ="http://www.tkk7.com/phoebird/aggbug/292930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-28 09:53 <a href="http://www.tkk7.com/phoebird/archive/2009/08/28/292930.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>闆嗗悎瀵硅薄娉ㄥ叆&&閫氳繃鏋勯犲嚱鏁版敞鍏?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/27/292862.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Thu, 27 Aug 2009 10:19:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/27/292862.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292862.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/27/292862.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292862.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292862.html</trackback:ping><description><![CDATA[<p>public interface <span style="color: red">IPersonService </span>{</p> <p> public abstract void Save();<br />  public Set<String> getSets() ;<br />  public List<String> getLists() ;<br />  public Properties getProperties() ;<br />  public Map<String, String> getMaps() ;</p> <p>}</p> <br /> <br /> <p>public class <span style="color: red">PersonServiceBean </span>implements IPersonService {</p> <p> private IPersonDao iPersonDao;<br />  private Set<String> sets=new HashSet<String>();<br />  private List<String> lists=new ArrayList<String>();<br />  private Properties properties=new Properties();<br />  private Map<String,String> maps=new HashMap<String,String>();<br />  <br />  public PersonServiceBean(IPersonDao personDao, String name) {<br />   <br />   iPersonDao = personDao;<br />   this.name = name;<br />  }<br />  public void Save(){<br />   System.out.println(name);//杈撳嚭name<br />   iPersonDao.add();<br />  }</p> <p> private String name;<br />  <br />  public String getName() {<br />   return name;<br />  }</p> <p> public void setName(String name) {<br />   this.name = name;<br />  }</p> <p> public Map<String, String> getMaps() {<br />   return maps;<br />  }</p> <p> public void setMaps(Map<String, String> maps) {<br />   this.maps = maps;<br />  }</p> <p> public Properties getProperties() {<br />   return properties;<br />  }</p> <p> public void setProperties(Properties properties) {<br />   this.properties = properties;<br />  }</p> <p> public Set<String> getSets() {<br />   return sets;<br />  }</p> <p> public void setSets(Set<String> sets) {<br />   this.sets = sets;<br />  }</p> <p> public IPersonDao getIPersonDao() {<br />   return iPersonDao;<br />  }</p> <p> public void setIPersonDao(IPersonDao personDao) {<br />   iPersonDao = personDao;<br />  }</p> <p> <br />  public List<String> getLists() {<br />   return lists;<br />  }</p> <p> public void setLists(List<String> lists) {<br />   this.lists = lists;<br />  }<br /> }<br /> <br /> <br /> <br /> 嫻嬭瘯綾伙細(xì)</p> <p>public class <span style="color: red">SpringTest </span>{</p> <p> @BeforeClass<br />  public static void setUpBeforeClass() throws Exception {<br />  }<br />  @Test<br />  public void instanceSpring() {<br />   ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<br />     "beans.xml");<br />   // ItcastClassPathXMLApplicationContext ctx=new<br />   // ItcastClassPathXMLApplicationContext("beans.xml");<br />   //  <br />   IPersonService ipersonService = (IPersonService) ctx<br />     .getBean("personService");<br />   //闆嗗悎瀵硅薄鐨勯亶鍘?br />   System.out.println("===========set==================");<br />   for (String value : ipersonService.getSets()) {<br />    <br />    System.out.println(value);<br />   }<br />   // ipersonService.Save();<br />   // ctx.close();<br />   // ctx.registerShutdownHook();<br />   System.out.println("===========List=================");<br />   for(String value:ipersonService.getLists()){<br />    <br />    System.out.println(value);<br />   }<br />   <br />   System.out.println("=========properties===============");<br />   for(Object value:ipersonService.getProperties().keySet()){<br />    System.out.println(value);<br />   }<br />   System.out.println("================maps==================");<br />   for(Object value:ipersonService.getMaps().keySet()){<br />    System.out.println(value);<br />   }<br />   //璋冪敤PersonServiceBean鐨剆ava鏂規(guī)硶錛岃緭鍑虹粨鏋?br />   ipersonService.Save();<br />   <br />  }<br /> }<br /> </p> <br /> <br /> <p><beans xmlns="http://www.springframework.org/schema/beans"<br />  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />  xmlns:aop="http://www.springframework.org/schema/aop"<br />  xmlns:tx="http://www.springframework.org/schema/tx"<br />  xsi:schemaLocation="<br />    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd<br />    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><br />  <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao" ref="personDaoBean"></property></p> <p style="color: red">  <constructor-arg index="0" ref="personDaoBean"<br />    type="cn.itcast.dao.IPersonDao" /><br />   <constructor-arg index="1" type="java.lang.String"<br />    value="浼犳櫤鍗氬"><br />   </constructor-arg></p> <p>  <property name="sets"><br />    <set><br />     <value>set1</value><br />     <value>set2</value><br />     <value>set3</value><br />    </set><br />   </property></p> <p>  <property name="lists"><br />    <list><br />     <value>list1</value><br />     <value>list2</value><br />     <value>list3</value><br />    </list><br />   </property></p> <p>  <property name="properties"><br />    <props><br />     <prop key="properties1">property1</prop><br />     <prop key="properties2">property2</prop><br />     <prop key="properties3">property3</prop><br />    </props><br />   </property></p> <p>  <property name="maps"><br />    <map><br />     <entry key="key1" value="keyFirst"></entry><br />     <entry key="key2" value="keySecond"></entry><br />     <entry key="key3" value="keyThird"></entry><br />    </map><br />   </property><br />  </bean><br />  <bean id="personDaoBean" class="cn.itcast.dao.impl.PersonDaoBean"></bean></p> <p><br />  <!-- <br />   <bean id="anotherPersonServiceBean"<br />   class="cn.itcast.service.impl.AnotherPersonServiceBean" ><br />   </bean><br />  --><br /> </beans><br /> <br /> <br /> public class PersonDaoBean implements IPersonDao {<br />  public void add(){<br />   System.out.println("榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶");<br />  }<br /> }</p> <br /> <br /> 杈撳嚭錛?br /> <br /> <br /> ===========set==================<br /> set1<br /> set2<br /> set3<br /> ===========List=================<br /> list1<br /> list2<br /> list3<br /> =========properties===============<br /> properties3<br /> properties2<br /> properties1<br /> ================maps==================<br /> key1<br /> key2<br /> key3<br /> 浼犳櫤鍗氬<br /> 榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶<br /> <br /> <img src ="http://www.tkk7.com/phoebird/aggbug/292862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-27 18:19 <a href="http://www.tkk7.com/phoebird/archive/2009/08/27/292862.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>spring渚濊禆娉ㄥ叆琛ュ厖鐭ヨ瘑鐐?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/27/292822.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Thu, 27 Aug 2009 07:03:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/27/292822.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292822.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/27/292822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292822.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292822.html</trackback:ping><description><![CDATA[渚濊禆娉ㄥ叆鐨勬柟寮忥細(xì)<br /> 絎竴銆侀氳繃鎺ュ彛娉ㄥ叆<br /> 絎簩銆侀氳繃鏋勯犲嚱鏁版敞鍏ワ紝璁劇疆瀵硅薄鍙傛暟<br /> 絎笁銆侀氳繃setter鏂規(guī)硶娉ㄥ叆銆?br /> 鍚庝袱鑰呰繍鐢ㄥ眳澶氥?br /> <br /> <br /> 閫氳繃鍐呴儴bean娉ㄥ叆錛屽叾緙虹偣鏄唴閮╞ean鍙兘琚竴涓閮╞ean浣跨敤<br /> 濡備笅錛?br /> <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao"><br />          <bean class="cn.itcast.dao.impl.PersonDaoBean"></bean><!--   鍐呴儴bean娉ㄥ叆 --><br />   </property><br />   <br />   </bean><br />   涔熷彲浠ユ崲涓猴細(xì)閫氳繃 ref鐨勬柟寮忎篃鏄彲浠ョ殑錛屽叾浼樼偣鏄氳繃ref鍙傛暟錛屽彲浠ヨ澶氫釜bean寮曠敤銆?br /> <br /> <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao" ref="personDaoBean"></property><br />   <br />   </bean><br />   <bean id="personDaoBean" class="cn.itcast.dao.impl.PersonDaoBean"></bean>  <br /> <br /> <br /> 鍓栨瀽渚濊禆娉ㄥ叆鐨勫唴閮ㄦ満鍒訛細(xì)閫氳繃鍩烘湰鏁版嵁綾誨瀷鐨勫悜灞炴у肩被鍨嬬殑杞崲<br /> <br /> <br /> <br /> <p>/**<br />  * 瀹炵幇鐨剆pring瀹瑰櫒<br />  * <br />  * @author Administrator<br />  * <br />  */<br /> public class ItcastClassPathXMLApplicationContext {</p> <p> private List<BeanDefinition> beanDefines = new ArrayList<BeanDefinition>();<br />  private Map<String, Object> sigletons = new HashMap<String, Object>();</p> <p> public ItcastClassPathXMLApplicationContext() {</p> <p> }</p> <p> public ItcastClassPathXMLApplicationContext(String filename) {<br />   // System.out.println("鏋勯犳柟娉?");<br />   this.readXml(filename);// 璋冪敤 璇誨彇閰嶇疆鏂囦歡 鐨勬柟娉?br />   this.instanceBeans();// 璋冪敤bean鐨勫疄渚嬪寲<br />   this.injectObject();// 娉ㄥ叆瀵硅薄<br />  }</p> <p> /**<br />   * 涓篵ean瀵硅薄鐨勫睘鎬ф敞鍏ュ?br />   */<br />  private void injectObject() {<br />   for (BeanDefinition beanDefinition : beanDefines) {<br />    Object bean = sigletons.get(beanDefinition.getId());<br />    if (bean != null) {<br />     // 鍙栧緱灞炴ф弿榪?錛屾槸涓涓暟緇?br />     try {<br />      PropertyDescriptor[] ps = Introspector.getBeanInfo(<br />        bean.getClass()).getPropertyDescriptors();<br />      for (PropertyDefinition propertyDefinition : beanDefinition<br />        .getPropertys()) {// 鍙栨墍鏈夊睘鎬?br />       for (PropertyDescriptor properdesc : ps) {<br />        if (propertyDefinition.getName().equals(<br />          properdesc.getName())) {<br />         Method setter = properdesc.getWriteMethod();// 鑾峰彇灞炴х殑setter鏂規(guī)硶.<br />         // private<br />         <span style="color: #ff0000">if (setter != null) {<br />          Object value=null;<br />          if(propertyDefinition.getRef()!=null && !"".equals(propertyDefinition.getRef().trim())){<br />           value = sigletons<br />             .get(propertyDefinition<br />               .getRef());<br />           <br />          }else{<br />           //灝嗛厤緗枃浠墮噷瀛楃涓茬被鍨嬭漿鎹負(fù)灞炴х被鍨嬬殑鍊?<br />           value=ConvertUtils.convert(propertyDefinition.getValue(), properdesc.getPropertyType());<br />           <br />          }<br />          setter.setAccessible(true);// 璁劇疆涓哄彲璁塊棶<br />          setter.invoke(bean, value);// 鎶婂紩鐢ㄥ璞℃敞鍏ュ埌灞炴?br /> </span>         <br />         }<br />         break;<br />        }<br />       }<br />      }<br />     } catch (Exception e) {<br />      e.printStackTrace();<br />     }</p> <p>   }<br />   }</p> <p> }</p> <p> /**<br />   * 瀹屾垚bean鐨勫疄渚嬪寲<br />   */<br />  private void instanceBeans() {<br />   // System.out.println("bean瀹炰緥鍖栨柟娉曡璋冪敤");<br />   // 鍒╃敤鍙嶅皠鏈哄埗鎶奲ean瀹炰緥鍖?br />   for (BeanDefinition beanDefinition : beanDefines) {<br />    try {<br />     // 鍒ゆ柇BeanDefinition鐨勫疄渚嬭幏寰楃殑綾誨悕涓嶄負(fù)null鍜岀┖涓?br />     if (beanDefinition.getClassName() != null<br />       && !"".equals(beanDefinition.getClassName().trim()))<br />      sigletons.put(beanDefinition.getId(), Class.forName(<br />        beanDefinition.getClassName()).newInstance());<br />    } catch (Exception e) {<br />     // TODO Auto-generated catch block<br />     e.printStackTrace();<br />    }</p> <p>  }</p> <p> }</p> <p> /**<br />   * 璇誨彇閰嶇疆鏂囦歡淇℃伅<br />   * <br />   * @param filename<br />   */<br />  private void readXml(String filename) {<br />   // System.out.println("璇誨彇xml鏂囦歡鐨勬柟娉曡璋冪敤浜?);</p> <p>  SAXReader saxReader = new SAXReader();// 鍒涘緩璇誨彇鍣?br />   Document document = null;<br />   try {<br />    URL xmlpath = this.getClass().getClassLoader()<br />      .getResource(filename);//鍙栧緱褰撳墠xml鏂囦歡鍦ㄦ湰鍦扮殑浣嶇疆<br />    <br />    document = saxReader.read(xmlpath);// 璇誨彇璺緞<br />    Map<String, String> nsMap = new HashMap<String, String>();<br />    nsMap.put("ns", "http://www.springframework.org/schema/beans");// 鍔犲叆鍛藉悕絀洪棿<br />    XPath xsub = document.createXPath("http://ns:beans/ns:bean");// 鍒涘緩beans/bean鏌ヨ璺緞<br />    xsub.setNamespaceURIs(nsMap);// 璁劇疆鍛藉悕絀洪棿<br />    List<Element> beans = xsub.selectNodes(document);// 鑾峰彇鏂囨。涓嬫墍鏈塨ean鑺傜偣<br />    for (Element element : beans) {<br />     String id = element.attributeValue("id");// 鑾峰彇id灞炴у?br />     String clazz = element.attributeValue("class");// 鑾峰彇class灞炴у?br />     BeanDefinition beanDefine = new BeanDefinition(id, clazz);<br />     XPath propertysub = element.createXPath("ns:property");// 鑸硅埌鏌ヨ璺緞</p> <p>    propertysub.setNamespaceURIs(nsMap);// 璁劇疆鍛藉悕絀洪棿<br />     List<Element> propertys = propertysub.selectNodes(element);// 鏌ユ壘鑺傜偣<br />     for (Element property : propertys) {<br />      String propertyName = property.attributeValue("name");// 鍙栧緱property鐨刵ame鍊?br />      String propertyref = property.attributeValue("ref");// 鍙栧緱property鐨剅ef鍊?br />      <span style="color: #ff0000">String propertyValue = property.attributeValue("value");// 鍙栧緱property鐨剉alue鍊?/span></p> <p>     PropertyDefinition propertyDefinition = new PropertyDefinition(<br />        propertyName, propertyref,<span style="color: #ff0000">propertyValue</span>);<br />      beanDefine.getPropertys().add(propertyDefinition);// 灝嗗睘鎬у璞″姞鍏ュ埌bean涓?br />     }</p> <p>    beanDefines.add(beanDefine);<br />    }<br />   } catch (Exception e) {<br />    e.printStackTrace();</p> <p>  }</p> <p> }</p> <p> /**<br />   * 鑾峰彇bean 瀹炰緥<br />   * <br />   * @param beanName<br />   * @return<br />   */<br />  public Object getBean(String beanName) {</p> <p>  <br />   return this.sigletons.get(beanName);<br />  }</p> <p>}<br /> </p> <br />    <br /> <br /> <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao" ref="personDaoBean"></property><br />   <br />   <property name="name" value="Itcast"></property><br />   <property name="age" value="15"></property><br />   </bean><br />   <bean id="personDaoBean" class="cn.itcast.dao.impl.PersonDaoBean"></bean>  <br />    <br /> <br /> <br /> <p>public class SpringTest {</p> <p> @BeforeClass<br />  public static void setUpBeforeClass() throws Exception {</p> <p> }<br />  @Test<br />  public void instanceSpring() {<br /> //  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<br /> //    "beans.xml");<br />   ItcastClassPathXMLApplicationContext ctx=new ItcastClassPathXMLApplicationContext("beans.xml");<br /> //  <br />   IPersonService ipersonService = (IPersonService)ctx<br />     .getBean("personService");<br />   ipersonService.Save();<br />  // ctx.close();<br />   // ctx.registerShutdownHook();</p> <p> }<br /> }<br /> <br /> <br /> public class PropertyDefinition {<br />  private String name;<br />  private String ref;<br />  private String value;<br />  public PropertyDefinition(String name, String ref,String value) {<br />   <br />   this.name = name;<br />   this.ref = ref;<br />   this.value=value;<br />  }<br />  public String getName() {<br />   return name;<br />  }<br />  public void setName(String name) {<br />   this.name = name;<br />  }<br />  public String getRef() {<br />   return ref;<br />  }<br />  public void setRef(String ref) {<br />   this.ref = ref;<br /> }<br /> 鍏朵粬鐣ャ?br /> <br /> out:<br /> Itcast<br /> 15<br /> 榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶<br /> </p> <img src ="http://www.tkk7.com/phoebird/aggbug/292822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-27 15:03 <a href="http://www.tkk7.com/phoebird/archive/2009/08/27/292822.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎竷.浜岃鑷畾涔変緷璧栨敞鍏?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/27/292816.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Thu, 27 Aug 2009 06:46:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/27/292816.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292816.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/27/292816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292816.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292816.html</trackback:ping><description><![CDATA[         浠婂ぉ鑺辮垂浜嗗崐澶╁幓鍐欒嚜瀹氫箟瀹瑰櫒錛岀粨鏋滃彂鐜拌繕鏄病鍙戝疄鐜板姛鑳斤紝鏃犳硶杈撳嚭錛岀粨鏋滀笉鏂殑璋冭瘯銆佹祴璇曘傛渶鍚庣粓浜庢悶瀹氫簡銆傚師鏉ユ槸鍐欎唬鐮佺殑鏃跺欐妸<span style="background-color: #ffff00">璇誨彇閰嶇疆鏂囦歡閲屾柟娉時eadxml錛岄噷闈㈣鍙栧瓙灞炴ч噷闈㈡煡鎵捐妭鐐癸紝璋冪敤鏌ユ壘瀵硅薄鎼為敊浜?/span>銆傛湰涓?font style="background-color: #ffff00" color="#ff0000">propertysub.selectNodes(element)錛屼絾鍐欎負(fù)浜?font color="#ff0000">xsub.selectNodes(element)</font></font>璇敤涓轟富element閲岄潰鏌ユ壘瀛愯妭鐐廣傝繕鏈夊氨鏄湪//ns:beans/<span style="color: red">ns:bean閲岄潰鎶婂啋鍙峰啓鎴愪簡欏垮彿錛岀湡鏄お涓嶄粩緇嗕簡銆?br /> <br /> 鑷畾涔夊鍣?br /> <p>/**<br />  * 瀹炵幇鐨剆pring瀹瑰櫒<br />  * <br />  * @author Administrator<br />  * <br />  */<br /> <span style="font-size: 14pt">public class ItcastClassPathXMLApplicationContext {</span></p> <p><span style="font-size: 14pt"> private List<BeanDefinition> beanDefines = new ArrayList<BeanDefinition>();<br />  private Map<String, Object> sigletons = new HashMap<String, Object>();</span></p> <p><span style="font-size: 14pt"> public ItcastClassPathXMLApplicationContext() {</span></p> <p><span style="font-size: 14pt"> }</span></p> <p><span style="font-size: 14pt"> public ItcastClassPathXMLApplicationContext(String filename) {<br />   // System.out.println("鏋勯犳柟娉?");<br />   this.readXml(filename);// 璋冪敤 璇誨彇閰嶇疆鏂囦歡 鐨勬柟娉?br />   this.instanceBeans();// 璋冪敤bean鐨勫疄渚嬪寲<br />   this.injectObject();// 娉ㄥ叆瀵硅薄<br />  }</span></p> <p><span style="font-size: 14pt"> /**<br />   * 涓篵ean瀵硅薄鐨勫睘鎬ф敞鍏ュ?br />   */<br />  private void injectObject() {<br />   for (BeanDefinition beanDefinition : beanDefines) {<br />    Object bean = sigletons.get(beanDefinition.getId());<br />    if (bean != null) {<br />     // 鍙栧緱灞炴ф弿榪?錛屾槸涓涓暟緇?br />     try {<br />      PropertyDescriptor[] ps = Introspector.getBeanInfo(<br />        bean.getClass()).getPropertyDescriptors();<br />      for (PropertyDefinition propertyDefinition : beanDefinition<br />        .getPropertys()) {// 鍙栨墍鏈夊睘鎬?br />       for (PropertyDescriptor properdesc : ps) {<br />        if (propertyDefinition.getName().equals(<br />          properdesc.getName())) {<br />         Method setter = properdesc.getWriteMethod();// 鑾峰彇灞炴х殑setter鏂規(guī)硶.<br />         // private<br />         if (setter != null) {<br />          Object value = sigletons<br />            .get(propertyDefinition.getRef());<br />          setter.setAccessible(true);// 璁劇疆涓哄彲璁塊棶<br />          setter.invoke(bean, value);// 鎶婂紩鐢ㄥ璞℃敞鍏ュ埌灞炴?br />         }<br />         break;<br />        }<br />       }<br />      }<br />     } catch (Exception e) {<br />      e.printStackTrace();<br />     }</span></p> <p><span style="font-size: 14pt">   }<br />   }</span></p> <p><span style="font-size: 14pt"> }</span></p> <p><span style="font-size: 14pt"> /**<br />   * 瀹屾垚bean鐨勫疄渚嬪寲<br />   */<br />  private void instanceBeans() {<br />   // System.out.println("bean瀹炰緥鍖栨柟娉曡璋冪敤");<br />   // 鍒╃敤鍙嶅皠鏈哄埗鎶奲ean瀹炰緥鍖?br />   for (BeanDefinition beanDefinition : beanDefines) {<br />    try {<br />     // 鍒ゆ柇BeanDefinition鐨勫疄渚嬭幏寰楃殑綾誨悕涓嶄負(fù)null鍜岀┖涓?br />     if (beanDefinition.getClassName() != null<br />       && !"".equals(beanDefinition.getClassName().trim()))<br />      sigletons.put(beanDefinition.getId(), Class.forName(<br />        beanDefinition.getClassName()).newInstance());<br />    } catch (Exception e) {<br />     // TODO Auto-generated catch block<br />     e.printStackTrace();<br />    }</span></p> <p><span style="font-size: 14pt">  }</span></p> <p><span style="font-size: 14pt"> }</span></p> <p><span style="font-size: 14pt"> /**<br />   * 璇誨彇閰嶇疆鏂囦歡淇℃伅<br />   * <br />   * @param filename<br />   */<br />  private void readXml(String filename) {<br />   // System.out.println("璇誨彇xml鏂囦歡鐨勬柟娉曡璋冪敤浜?);</span></p> <p><span style="font-size: 14pt">  SAXReader saxReader = new SAXReader();// 鍒涘緩璇誨彇鍣?br />   Document document = null;<br />   try {<br />    URL xmlpath = this.getClass().getClassLoader()<br />      .getResource(filename);//鍙栧緱褰撳墠xml鏂囦歡鍦ㄦ湰鍦扮殑浣嶇疆<br />    <br />    document = saxReader.read(xmlpath);// 璇誨彇璺緞<br />    System.out.println(document);<br />    Map<String, String> nsMap = new HashMap<String, String>();<br />    nsMap.put("ns", "http://www.springframework.org/schema/beans");// 鍔犲叆鍛藉悕絀洪棿<br />    XPath xsub = document.createXPath("http://ns:beans/ns:bean");// 鍒涘緩beans/bean鏌ヨ璺緞<br />    xsub.setNamespaceURIs(nsMap);// 璁劇疆鍛藉悕絀洪棿<br />    List<Element> beans = xsub.selectNodes(document);// 鑾峰彇鏂囨。涓嬫墍鏈塨ean鑺傜偣<br />    System.out.println(beans.size());<br />    for (Element element : beans) {<br />     String id = element.attributeValue("id");// 鑾峰彇id灞炴у?br />     String clazz = element.attributeValue("class");// 鑾峰彇class灞炴у?br />     BeanDefinition beanDefine = new BeanDefinition(id, clazz);<br />     System.out.println("id=" + id);<br />     System.out.println("clazz=" + clazz);<br />     XPath propertysub = element.createXPath("ns:property");// 鑸硅埌鏌ヨ璺緞</span></p> <p><span style="font-size: 14pt">    propertysub.setNamespaceURIs(nsMap);// 璁劇疆鍛藉悕絀洪棿<br />     List<Element> propertys = propertysub.selectNodes(element);// 鏌ユ壘鑺傜偣<br />     for (Element property : propertys) {<br />      String propertyName = property.attributeValue("name");// 鍙栧緱property鐨刵ame鍊?br />      String propertyref = property.attributeValue("ref");// 鍙栧緱property鐨剅ef鍊?/span></p> <p><span style="font-size: 14pt">     System.out.println(propertyName + "=  " + propertyref);</span></p> <p><span style="font-size: 14pt">     PropertyDefinition propertyDefinition = new PropertyDefinition(<br />        propertyName, propertyref);<br />      beanDefine.getPropertys().add(propertyDefinition);// 灝嗗睘鎬у璞″姞鍏ュ埌bean涓?br />     }</span></p> <p><span style="font-size: 14pt">    beanDefines.add(beanDefine);<br />    }<br />   } catch (Exception e) {<br />    e.printStackTrace();</span></p> <p><span style="font-size: 14pt">  }</span></p> <p><span style="font-size: 14pt"> }</span></p> <p><span style="font-size: 14pt"> /**<br />   * 鑾峰彇bean 瀹炰緥<br />   * <br />   * @param beanName<br />   * @return<br />   */<br />  public Object getBean(String beanName) {</span></p> <p><span style="font-size: 14pt">  <br />   return this.sigletons.get(beanName);<br />  }</span></p> <p><span style="font-size: 14pt">}<br /> </span></p>  bean.xml閰嶇疆鏂囦歡<br /> <br /> <p><?xml version="1.0" encoding="UTF-8"?></p> <p><br /> <span style="background-color: #ccffff"><beans xmlns="http://www.springframework.org/schema/beans"</span><br />  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />  xmlns:aop="http://www.springframework.org/schema/aop"<br />  xmlns:tx="http://www.springframework.org/schema/tx"<br />  xsi:schemaLocation="<br />    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd<br />    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" <br />   ><br />  <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao" ref="personDaoBean"></property><br />   <br />   </bean><br />   <bean id="personDaoBean" class="cn.itcast.dao.impl.PersonDaoBean"></bean>  <br /> </beans><br /> </p> <br /> 鑷畾涔夊睘鎬х被 PropertyDefinition.java<br /> <p>package junit.test;</p> <p>public class PropertyDefinition {<br />  private String name;<br />  private String ref;<br />  public PropertyDefinition(String name, String ref) {<br />   <br />   this.name = name;<br />   this.ref = ref;<br />  }<br />   getter&setter method</p> <p>}<br /> </p> <br /> 嫻嬭瘯綾伙細(xì)springTest<br /> <br /> <br /> <p>package junit.test;</p> <p>import org.junit.BeforeClass;<br /> import org.junit.Test;<br /> import org.springframework.context.ApplicationContext;<br /> import org.springframework.context.support.AbstractApplicationContext;<br /> import org.springframework.context.support.ClassPathXmlApplicationContext;<br /> import org.springframework.context.support.FileSystemXmlApplicationContext;</p> <p>import cn.itcast.service.IPersonService;<br /> import cn.itcast.service.impl.PersonServiceBean;</p> <p>public class SpringTest {</p> <p> @BeforeClass<br />  public static void setUpBeforeClass() throws Exception {</p> <p> }<br />  @Test<br />  public void instanceSpring() {<br /> //  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<br /> //    "beans.xml");<br />   <span style="font-size: 18pt; color: #0000ff">ItcastClassPathXMLApplicationContext ctx=new ItcastClassPathXMLApplicationContext("beans.xml");<br />   <br />   IPersonService ipersonService = (IPersonService)ctx<br />     .getBean("personService");//璋冪敤鑷畾涔夊鍣ㄧ殑getBean鏂規(guī)硶<br />   ipersonService.Save();<br /> </span>//  ctx.close();<br />   // ctx.registerShutdownHook();</p> <p> }<br /> }<br /> </p> 鑷畾涔塨ean綾伙細(xì)<br /> <br /> <p>package junit.test;</p> <p>import java.util.ArrayList;<br /> import java.util.List;</p> <p>public class BeanDefinition {<br />  <br />  private String id;<br />  private String className;<br />  private List<PropertyDefinition> propertys=new ArrayList<PropertyDefinition>();<br />  鐢熸垚getter,setter鏂規(guī)硶<br />  }<br /> </p> <br /> <br /> <p>package cn.itcast.dao.impl;</p> <p>import cn.itcast.dao.IPersonDao;</p> <p>public class PersonDaoBean implements IPersonDao {<br />  public void add(){<br />   System.out.println("榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶");<br />  }<br /> }</p> <br /> <br /> <br /> <p>package cn.itcast.service;</p> <p>public interface IPersonService {</p> <p> public abstract void Save();</p> <p>}</p> <br /> <br /> <br /> <p>package cn.itcast.service.impl;</p> <p><br /> import cn.itcast.dao.IPersonDao;<br /> import cn.itcast.service.IPersonService;<br /> /**<br />  * 涓氬姟bean<br />  * @author Administrator<br />  *<br />  */<br /> public class PersonServiceBean implements IPersonService {</p> <p> private IPersonDao iPersonDao;<br />  <br />  public IPersonDao getIPersonDao() {<br />   return iPersonDao;<br />  }</p> <p> public void setIPersonDao(IPersonDao personDao) {<br />   iPersonDao = personDao;<br />  }</p> <p> public void Save(){<br />   iPersonDao.add();<br />  }<br />  <br />  <br /> }<br /> </p> <br /> <br /> 榪愯嫻嬭瘯綾?br /> out:<br />  榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶<br /> <br /> <br /> </span> <img src ="http://www.tkk7.com/phoebird/aggbug/292816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-27 14:46 <a href="http://www.tkk7.com/phoebird/archive/2009/08/27/292816.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎竷 --緙栫爜鍓栨瀽Spring渚濊禆娉ㄥ叆鐨勫師鐞?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/26/292621.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Wed, 26 Aug 2009 03:40:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/26/292621.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292621.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/26/292621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292621.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292621.html</trackback:ping><description><![CDATA[<p>public interface IPersonService {</p> <p> public abstract void Save();</p> <p>}</p> <br /> <br /> <p>public class PersonDaoBean implements IPersonDao {</p> <p> <br />  public void add(){<br />   System.out.println("榪欐槸personDaoBean鐨凙dd()鏂規(guī)硶");<br />  }<br /> }<br /> <br /> <br /> </p> <p>public class PersonServiceBean implements IPersonService {</p> <p> private IPersonDao iPersonDao;<br />  <br />  public IPersonDao getIPersonDao() {<br />   return iPersonDao;<br />  }</p> <p> public void setIPersonDao(IPersonDao personDao) {<br />   iPersonDao = personDao;<br />  }</p> <p> public void Save(){<br />   iPersonDao.add();<br />  }<br />  <br />  <br /> }</p> <br /> <br /> <br /> <bean id="personDaoBean" class="cn.itcast.dao.impl.PersonDaoBean"></bean><br />  <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean"><br />   <property name="IPersonDao" ref="personDaoBean"></property><br />   </bean><br />    <br /> <br /> <p>public void instanceSpring() {<br />   ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<br />     "beans.xml");<br />   IPersonService ipersonService = (IPersonService) ctx<br />     .getBean("personService");<br />   ipersonService.Save();<br />   ctx.close();<br />   // ctx.registerShutdownHook();</p> <p> }<br /> </p> <br /> <br /> 杈撳嚭錛氳繖鏄痯ersonDaoBean鐨凙dd()鏂規(guī)硶<br /> <img src ="http://www.tkk7.com/phoebird/aggbug/292621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-26 11:40 <a href="http://www.tkk7.com/phoebird/archive/2009/08/26/292621.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎叚 Spring 綆$悊bean鐨勭敓鍛藉懆鏈?/title><link>http://www.tkk7.com/phoebird/archive/2009/08/26/292606.html</link><dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator><author>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author><pubDate>Wed, 26 Aug 2009 02:32:00 GMT</pubDate><guid>http://www.tkk7.com/phoebird/archive/2009/08/26/292606.html</guid><wfw:comment>http://www.tkk7.com/phoebird/comments/292606.html</wfw:comment><comments>http://www.tkk7.com/phoebird/archive/2009/08/26/292606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/phoebird/comments/commentRss/292606.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/phoebird/services/trackbacks/292606.html</trackback:ping><description><![CDATA[<p><span style="font-size: 14pt"><span style="color: #ff0000">public class PersonServiceBean implements IPersonService {</span></span></p> <p><span style="font-size: 14pt"><span style="color: #ff0000"> public void init(){<br />   <br />   System.out.println("鎴戞槸鍒濆鍖栧嚱鏁?);<br />  }<br />  <br />  public PersonServiceBean(){<br />   System.out.println("鎴戞槸鏋勯犲嚱鏁?);<br />  }<br />  public void Save(){<br />   System.out.println("save鏂規(guī)硶");<br />  }<br />  <br />  public void cleanup(){<br />   System.out.println("cleanup鏂規(guī)硶");<br />  }<br /> }<br /> <br /> <br /> <bean id="personService"<br />   class="cn.itcast.service.impl.PersonServiceBean" <br />    init-method="init" destroy-method="cleanup"/><br /> <br /> @Test public void instanceSpring(){<br />   ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");<br />   IPersonService ipersonService=(IPersonService)ctx.getBean("personService");<br />  ctx.close();</span></span></p> <img src ="http://www.tkk7.com/phoebird/aggbug/292606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/phoebird/" target="_blank">絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/a> 2009-08-26 10:32 <a href="http://www.tkk7.com/phoebird/archive/2009/08/26/292606.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎簲璁?--閰嶇疆Spring綆$悊鐨刡ean鐨勪綔鐢ㄥ煙http://www.tkk7.com/phoebird/archive/2009/08/25/292497.html絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author>Tue, 25 Aug 2009 04:06:00 GMThttp://www.tkk7.com/phoebird/archive/2009/08/25/292497.htmlhttp://www.tkk7.com/phoebird/comments/292497.htmlhttp://www.tkk7.com/phoebird/archive/2009/08/25/292497.html#Feedback0http://www.tkk7.com/phoebird/comments/commentRss/292497.htmlhttp://www.tkk7.com/phoebird/services/trackbacks/292497.htmlBean鐨勪綔鐢ㄥ煙

.singleton


 鍦ㄦ瘡涓猄pring IoC瀹瑰櫒涓竴涓猙ean瀹氫箟鍙湁涓涓璞″疄渚嬨傞粯璁ゆ儏鍐典笅浼?xì)鍦ㄥ鍣ㄥ惎鍔ㄦ椂鍒濆鍖朾ean錛屼絾鎴戜滑鍙互鎸囧畾Bean鑺傜偣鐨刲azy-init=“true”鏉ュ歡榪熷垵濮嬪寲bean錛岃繖鏃跺欙紝鍙湁絎竴嬈¤幏鍙朾ean浼?xì)鎵嶅垵濮嬪寲bean銆傚錛?br />  <bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>
濡傛灉鎯沖鎵鏈塨ean閮藉簲鐢ㄥ歡榪熷垵濮嬪寲錛屽彲浠ュ湪鏍硅妭鐐筨eans璁劇疆default-lazy-init=“true“錛屽涓嬶細(xì)
<beans default-lazy-init="true“ ...>


.prototype
 姣忔浠庡鍣ㄨ幏鍙朾ean閮芥槸鏂扮殑瀵硅薄銆?br />  
.request
.session
.global session

 

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
  PersionSevice ps2=(PersionSevice)ctx.getBean("persionServiceBean");
  System.out.println(ps==ps2);

 杈撳嚭:true

鍙spring瀹瑰櫒榛樿鐨刡ean鐨勪駭鐢熸柟寮忔槸鍗曚緥

 

鏀?/span>

 <bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" scope="prototype"></bean> 

 

榪欐椂鍊欒緭鍑猴細(xì)false ,鏄劇劧ps涓巔s2灝變笉涓鏍楓?br />



]]>
絎洓 Spring 鐨勪笁縐嶅疄渚嬪寲bean鏂瑰紡http://www.tkk7.com/phoebird/archive/2009/08/25/292496.html絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/dc:creator>絎戝彛甯稿紑銆佽儲婧愭粴婊氭潵錛?/author>Tue, 25 Aug 2009 03:59:00 GMThttp://www.tkk7.com/phoebird/archive/2009/08/25/292496.htmlhttp://www.tkk7.com/phoebird/comments/292496.htmlhttp://www.tkk7.com/phoebird/archive/2009/08/25/292496.html#Feedback0http://www.tkk7.com/phoebird/comments/commentRss/292496.htmlhttp://www.tkk7.com/phoebird/services/trackbacks/292496.html涓夌瀹炰緥鍖朾ean鐨勬柟寮?/span>

 

1.浣跨敤綾繪瀯閫犲櫒瀹炰緥鍖?/span>
<bean id=“orderService" class="cn.itcast.OrderServiceBean"/>

 

 


2.浣跨敤闈欐佸伐鍘傛柟娉曞疄渚嬪寲
<bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/>

 

public class PersionServiceBeanFactory
{
 public static PersionServiceBean createPersionServiceBean()
 {
  return new PersionServiceBean();
 }
}

 

渚嬪瓙:

 

(1).棣栧厛鍐欏伐鍘傜被.浠栧叾涓寘鍚駭鐢熸垜浠殑涓氬姟bean鐨勬柟娉?/span>

Java浠g爜 澶嶅埗浠g爜
  1. package cn.com.xinli.service.impl;   
  2.   
  3.   
  4. public class PersionServiceBeanFactory   
  5. {   
  6.     public static PersionServiceBean createPersionServiceBean()   
  7.     {   
  8.         return new PersionServiceBean();   
  9.     }   
  10. }  

 

(2).鏀瑰啓beans.xml :鍖呭惈宸ュ巶綾葷被鍚嶅拰浜х敓涓氬姟bean鐨勬柟娉曞悕瀛?/span>

 

 <bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/>

 

 (3) 嫻嬭瘯

 

Java浠g爜 澶嶅埗浠g爜
  1. ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   
  2.         PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean2");   
  3.                                                         
  4.         ps.save();  

 (4) 緇撴灉

 

2009-05-24 14:34:00,781  INFO (PersionServiceBean.java:12) - 鎴戞槸save()鏂規(guī)硶!

 


3.浣跨敤瀹炰緥宸ュ巶鏂規(guī)硶瀹炰緥鍖?

 

<bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean>
    <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>

 

public  PersionServiceBean createPersionServiceBean2()
 {
  return new PersionServiceBean();
 }

 

渚嬪瓙:

 

(1). 棣栧厛鍐欏伐鍘傜被.浠栧叾涓寘鍚駭鐢熸垜浠殑涓氬姟bean鐨勬柟娉?nbsp;,鍦ㄥ凡鏈変唬鐮佺殑鍩虹涓?/span>

Java浠g爜 澶嶅埗浠g爜
  1. package cn.com.xinli.service.impl;   
  2.   
  3.   
  4. public class PersionServiceBeanFactory   
  5. {   
  6.     public static PersionServiceBean createPersionServiceBean()   
  7.     {   
  8.         return new PersionServiceBean();   
  9.     }   
  10.        
  11.     <SPAN style="COLOR: #ff0000">public  PersionServiceBean createPersionServiceBean2()   
  12.     {   
  13.         return new PersionServiceBean();   
  14.     }</SPAN>   
  15.        
  16. }  

 

 

(2).鏀瑰啓beans.xml :鍐欎袱涓猙ean,涓涓槸宸ュ巶bean,涓涓槸鍒╃敤宸ュ巶bean浜х敓涓氬姟bean鐨刡ean.

 

Xml浠g爜 澶嶅埗浠g爜
  1. <bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean>  
  2.     <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>  

 

 (3) 嫻嬭瘯

 

Java浠g爜 澶嶅埗浠g爜
  1. ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   
  2.         PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean3");   
  3.                                                         
  4.         ps.save();  

 (4) 緇撴灉

 

2009-05-24 14:49:17,812  INFO (PersionServiceBean.java:12) - 鎴戞槸save()鏂規(guī)硶!

 

 (5) 娉ㄦ剰,鍏跺疄鏂瑰紡2鍜屾柟寮?鐨勫尯鍒氨鍦?宸ュ巶綾諱腑鏄浣曚駭鐢熶笟鍔ean鐨?鏂瑰紡2鏄?span style="color: #ff0000">static鏂瑰紡,鏂瑰紡3涓嶆槸



]]>
主站蜘蛛池模板: 亚洲1234区乱码| 亚洲电影免费观看| 亚洲精品美女久久久久久久| 国产精品亚洲片在线| 麻豆亚洲AV永久无码精品久久| 国产免费小视频在线观看| 先锋影音资源片午夜在线观看视频免费播放 | 1000部无遮挡拍拍拍免费视频观看| 免费精品国自产拍在线播放 | 无遮免费网站在线入口| 免费看无码特级毛片| av电影在线免费看| 国产亚洲精品美女| 亚洲日韩国产一区二区三区在线| 亚洲色图.com| 亚洲另类激情综合偷自拍| 亚洲理论电影在线观看| 亚洲性久久久影院| 一本久到久久亚洲综合| 韩国18福利视频免费观看| 色妞WWW精品免费视频| 国产精品1024永久免费视频| 日韩免费人妻AV无码专区蜜桃| 中国一级特黄高清免费的大片中国一级黄色片 | 日韩在线免费视频| h视频在线观看免费完整版| 亚洲成a人片在线不卡一二三区| 亚洲人色大成年网站在线观看| 亚洲精品人成电影网| 久久综合亚洲鲁鲁五月天| 久久精品国产亚洲av麻豆色欲| 亚洲人成电影在线天堂| 亚洲午夜精品一区二区| 亚洲va在线va天堂va不卡下载| 久久亚洲一区二区| 久久精品国产亚洲av麻豆小说| 久久亚洲国产精品成人AV秋霞| 亚洲精品国产啊女成拍色拍| 91午夜精品亚洲一区二区三区| 久久精品国产亚洲av麻豆蜜芽| 久久久久se色偷偷亚洲精品av|