锘??xml version="1.0" encoding="utf-8" standalone="yes"?>色播在线观看,超碰97在线免费观看,国产大学生校花援交在线播放http://www.aygfsteel.com/Duffblog/articles/90595.html榪界悆鑰?/dc:creator>榪界悆鑰?/author>Thu, 28 Dec 2006 14:12:00 GMThttp://www.aygfsteel.com/Duffblog/articles/90595.htmlhttp://www.aygfsteel.com/Duffblog/comments/90595.htmlhttp://www.aygfsteel.com/Duffblog/articles/90595.html#Feedback0http://www.aygfsteel.com/Duffblog/comments/commentRss/90595.htmlhttp://www.aygfsteel.com/Duffblog/services/trackbacks/90595.html聽鍦⊿pring 2.0涔嬪墠錛孲pring鐨凧MS鐨勪綔鐢ㄥ眬闄愪簬浜х敓娑堟伅銆傝繖涓姛鑳斤紙灝佽鍦?JmsTemplate 綾諱腑錛夊綋鐒舵槸寰堝ソ鐨勶紝 浣嗘槸錛屽畠娌℃湁鎻忚堪瀹屾暣鐨凧MS鍫嗘爤錛屾瘮濡傚儚娑堟伅鐨?寮傛 浜х敓鍜屾秷鑰椼侸MS鍫嗘爤緙哄皯鐨勮繖涓閮ㄥ垎宸茬粡琚坊鍔狅紝Spring 2.0鐜板湪鎻愪緵瀵規(guī)秷鎭紓姝ユ秷鑰楃殑瀹屾暣鏀寔銆?br />聽聽聽聽聽 璁╂垜浠粠涓涓緥瀛愬紑濮嬨?br />聽聽聽聽聽 棣栧厛鎴戜滑鎵撳紑ActiveMQ銆備粠ActiveMQ鐨勫畨瑁呰礬寰勪笂鐨刡in鐩綍錛岄偅閲屾湁涓涓狝ctiveMQ.bat錛屽弻鍑繪墽琛屽嵆鍙備笉榪囪娉ㄦ剰蹇呴』鍏堣緗甹ava_home鐜鍙橀噺銆侫ctiveMQ榛樿鐨勬湇鍔$鍙f槸61616銆?br />聽聽聽聽聽 鐒跺悗鎴戜滑寮濮嬮厤緗甋pring閰嶇疆鏂囦歡銆傛垜璧峰悕涓簊pring-jms.xml
  1. 棣栧厛瑕侀厤緗竴涓狢onnectionFactory浠g爜濡備笅

聽<bean id="connectionFactory"
聽聽聽聽聽聽聽 class="org.apache.activemq.ActiveMQConnectionFactory">
聽聽聽聽聽聽聽 <property name="brokerURL" value="tcp://localhost:61616" />
</bean>

  • 榪欓噷鐢ㄥ埌鐨凜onnectionFactory鏄疉ctiveMQ鎻愪緵鐨勫伐鍘傦紝涓轟簡鑳戒嬌鐢ㄨ繖涓伐鍘傦紝鎴戜滑蹇呴』鍦ㄩ」鐩腑娣誨姞浠ヤ笅鍑犱釜jar鏂囦歡錛?br />geronimo-jms_1.1_spec-1.0.jar,
    activeio-core-3.0-beta3.jar,
    activemq-core-4.0.1.jar,
    backport-util-concurrent-2.1.jar,
    commons-logging-1.0.4.jar,
    geronimo-j2ee-management_1.0_spec-1.0.jar
    浠ヤ笂榪欎簺Jar鏂囦歡閮藉瓨鍦ㄤ簬ActiveMQ瀹夎鐩綍鐨刲ib鐩綍涓嬶紝榪欎簺鍙槸鎴戜竴涓竴涓瘯楠屽嚭鏉ョ殑錛岀瘡涓崐姝匯傘?br />
  • 鐒跺悗搴旇閰嶇疆涓涓猀ueue錛堟垜浣跨敤鐨勬槸鐐瑰鐐規(guī)柟寮忥級錛屼笉榪嘇ctiveMQ鍙鎻愪緵涓涓悕瀛楀氨鍙互鑷姩鍒涘緩闃熷垪錛屽洜姝よ繖涓姝ョ渷浜嗭紝鍛靛懙
  • 涓嬮潰灝辮疆鍒癝pring鐨勬敮鎸佺被浜嗭紝棣栧厛鏄疛msTemplate銆傝繖涓被鎻愪緵浜嗗ぇ閲忕殑鏂規(guī)硶綆鍖栨垜浠JMS鐨勬搷浣溿傚父鐢ㄧ殑鏈変袱涓紝 org.springframework.jms.core.JmsTemplate102鍜?org.springframework.jms.core.JmsTemplate錛岃繖涓や釜綾誨垎鍒敮鎸丣MS鐨?.02鐗堟湰鍜?.1鐗堟湰銆傜幇鍦ㄦ瘮杈冨父鐢ㄧ殑榪樻槸1.02鐗堟湰銆傞厤緗涓?

    <bean id="jmsTemplate"
    聽聽聽聽聽聽聽 class="org.springframework.jms.core.JmsTemplate102">
    聽聽聽聽聽聽聽 <property name="connectionFactory" ref="connectionFactory"/>
    聽聽聽聽聽聽聽 <property name="timeToLive" value="86400000"/>
    聽聽聽聽聽聽聽 <property name="defaultDestinationName" value="cmpp" />
    聽聽聽聽聽聽聽 <property name="messageConverter" ref="messageConverter" />
    聽聽聽聽聽聽聽 <property name="receiveTimeout" value="30000" />
    聽聽聽 </bean>
    涓婇潰鐨勯厤緗腑鐢ㄥ埌浜嗙涓姝ラ厤緗殑connectionFactory浠ュ強涓涓秷鎭漿鎹㈢殑綾?messageConverter錛岃繖涓被瀹炵幇浜?org.springframework.jms.support.converter.MessageConverter鎺ュ彛錛屽彲浠ュ湪娑堟伅鍙戦佷箣鍓嶅拰鎺ュ彈涔嬪悗榪涜娑堟伅綾誨瀷杞崲銆傚叿浣撶殑鐪嬫渶鍚庣殑瀹炰緥浠g爜銆傞厤緗唬鐮佸涓嬶細
    聽<!-- Spring JMS SimpleConverter -->
    聽聽聽聽聽聽 <bean id="simpleConverter"聽 class="org.springframework.jms.support.converter.SimpleMessageConverter" />
    <!-- Message Converter -->
    聽聽聽 <bean id="messageConverter"
    聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.ApmgtMessageConverter">
    聽聽聽聽聽聽聽 <property name="converter">
    聽聽聽聽聽聽聽聽聽聽聽 <ref local="simpleConverter" />
    聽聽聽聽聽聽聽 </property>
    聽聽聽 </bean>

  • 榪欓噷榪橀厤緗簡鍙戦佺殑娑堟伅鐨勫瓨鍦ㄦ椂闂磘imeToLive錛岀洰鏍嘠ueue鐨勫悕瀛梔efaultDestinationName錛屾帴鍙楁秷鎭秴鏃舵椂闂磖eceiveTimeout

    4銆傞厤緗彂閫佷唬鐮?br />聽聽聽 <bean id="producer"
    聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.DefaultApmgtMessageProducer">
    聽聽聽聽聽聽聽 <property name="jmsTemplate" ref="jmsTemplate" />
    聽聽聽 </bean>
    5銆傛帴鐫閰嶇疆鐩戝惉鍣紝榪欐槸Spring2.0鏂板鐨勫姛鑳斤紝閰嶇疆濡備笅錛?br /><!-- this is the Message Driven POJO (MDP) -->
    聽聽聽 <bean id="messageListener"
    聽聽聽聽聽聽聽 class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    聽聽聽聽聽聽聽 <constructor-arg>
    聽聽聽聽聽聽聽聽聽聽聽 <bean
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.DefaultApmgtMessageListener" />
    聽聽聽聽聽聽聽 </constructor-arg>
    聽聽聽聽聽聽聽 <property name="defaultListenerMethod" value="onMessage" />
    聽聽聽聽聽聽聽 <property name="messageConverter" ref="messageConverter" />
    聽聽聽 </bean>

    聽聽聽 <!-- and this is the attendant message listener container -->
    聽聽聽 <bean id="listenerContainer"
    聽聽聽聽聽聽聽 class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    聽聽聽聽聽聽聽 <property name="connectionFactory" ref="connectionFactory" />
    聽聽聽聽聽聽聽 <property name="destinationName" value="${jms.destinationName.cmpp}" />
    聽聽聽聽聽聽聽 <property name="messageSelector" value="${jms.messageSelector}" />
    聽聽聽聽聽聽聽 <property name="messageListener" ref="messageListener" />
    聽聽聽 </bean>

    聽Spring閰嶇疆鐩戝惉鍣ㄦ湁寰堝縐嶉夋嫨錛屽湪榪欓噷鎴戦夋嫨榪欏洖縐峂essageListenerAdapter鏂規(guī)硶涓昏鏄洜涓鴻繖涓柟娉曟瘮杈冪伒媧匯傚疄鐜頒粬鍙涓涓緢鏅氱殑java綾誨嵆鍙紝鍜孞MS浠ュ強Spring鐨勮﹀悎搴︽渶浣庛傚叾涓柟娉昽nMessage鍙互闅忎究淇敼鏂規(guī)硶鍚嶏紝鍙鍦ㄩ厤緗枃浠朵腑瀵瑰簲鐨勪慨鏀瑰氨濂戒簡銆?br />聽聽聽聽 MessageListenerAdapter榪樻湁涓涓姛鑳藉氨鏄鏋滃鐞嗘柟娉?鎴戣繖閲屾槸onMessage)榪斿洖涓涓潪絀哄鹼紝瀹冨皢鑷姩榪斿洖涓涓搷搴?tt class="interfacename">娑堟伅銆傝繖涓秷鎭細榪斿洖緇橨MS Reply-To灞炴у畾涔夌殑鐩殑鍦?/tt>(濡傛灉瀛樺湪)錛屾垨鑰呮槸MessageListenerAdapter璁劇疆(濡傛灉閰嶇疆浜?鐨勭己鐪?tt class="interfacename">鐩殑鍦?/tt>錛涘鏋滄病鏈夊畾涔?tt class="interfacename">鐩殑鍦?/tt>錛岄偅涔堝皢浜х敓涓涓?tt class="classname">InvalidDestinationException寮傚父(姝ゅ紓甯稿皢涓嶄細鍙鎹曡幏鑰屼笉澶勭悊錛屽畠灝?/em>娌跨潃璋冪敤鍫嗘爤涓婁紶)銆?br />聽聽聽聽 榪欐牱鎴戜滑鐨勯厤緗氨閮藉畬鎴愪簡銆傛帴涓嬫潵鎴戜滑鏉ュ疄鐜板搴旂殑Java鏂囦歡
    鍏堟槸鎺ュ彛鏂囦歡鍙戦佹秷鎭帴鍙ApmgtMessageProducer.java
    public interface IApmgtMessageProducer {
    聽聽聽 public abstract void sendMessage(ApmgtMessageData messageData);
    }
    鎺ュ彈娑堟伅鎺ュ彛IApmgtMessageListener.java
    public interface IApmgtMessageListener {
    聽聽聽 public void onMessage(ApmgtMessageData message);
    }
    鍙戞秷鎭殑鏂囦歡DefaultApmgtMessageProducer.java
    聽public class DefaultApmgtMessageProducer implements IApmgtMessageProducer {
    聽聽聽
    聽聽聽 private JmsTemplate jmsTemplate;

    聽聽聽 public void setJmsTemplate(JmsTemplate jmsTemplate) {
    聽聽聽聽聽聽聽 this.jmsTemplate = jmsTemplate;
    聽聽聽 }

    聽聽聽 public void sendMessage(ApmgtMessageData messageData) {
    聽聽聽聽聽聽聽 this.jmsTemplate.convertAndSend(messageData);
    聽聽聽 }
    }
    鏀舵秷鎭枃浠禗efaultApmgtMessageListener.java
    public class DefaultApmgtMessageListener implements IApmgtMessageListener {
    聽聽聽 public void onMessage(ApmgtMessageData message) {
    聽聽聽聽聽聽聽 System.out.println("鐩戝惉鍒版秷鎭細"+message);
    聽聽聽 }
    }
    娑堟伅杞崲綾籄pmgtMessageConverter.java
    public class ApmgtMessageConverter implements MessageConverter {

    聽聽聽 private Log log = LogFactory.getLog(ApmgtMessageConverter.class);

    聽聽聽 private SimpleMessageConverter converter;

    聽聽聽 public void setConverter(SimpleMessageConverter converter) {
    聽聽聽聽聽聽聽 this.converter = converter;
    聽聽聽 }

    聽聽聽 public Object fromMessage(Message message) throws JMSException, MessageConversionException {
    聽聽聽聽聽聽聽 if (message instanceof ObjectMessage) {
    聽聽聽聽聽聽聽聽聽聽聽 ObjectMessage o_message = (ObjectMessage)message;
    聽聽聽聽聽聽聽聽聽聽聽 MessageHeader header = new MessageHeader();
    聽聽聽聽聽聽聽聽聽聽聽 header.setId(message.getLongProperty("id"));
    聽聽聽聽聽聽聽聽聽聽聽 header.setReceiver(message.getIntProperty("receiver"));
    聽聽聽聽聽聽聽聽聽聽聽 header.setSender(message.getIntProperty("sender"));
    聽聽聽聽聽聽聽聽聽聽聽 header.setSendPerson(message.getStringProperty("sendPerson"));
    聽聽聽聽聽聽聽聽聽聽聽 header.setType(message.getIntProperty("type"));
    聽聽聽聽聽聽聽聽聽聽聽 Serializable messageContent = o_message.getObject();
    聽聽聽聽聽聽聽聽聽聽聽 ApmgtMessageData<Serializable> messageData = new ApmgtMessageData<Serializable>();
    聽聽聽聽聽聽聽聽聽聽聽 messageData.setMessageContent(messageContent);
    聽聽聽聽聽聽聽聽聽聽聽 messageData.setMessageHeader(header);
    聽聽聽聽聽聽聽聽聽聽聽 return messageData;
    聽聽聽聽聽聽聽 }
    聽聽聽聽聽聽聽 return null;
    聽聽聽 }

    聽聽聽 public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException {
    聽聽聽聽聽聽聽 if (object instanceof ApmgtMessageData) {
    聽聽聽聽聽聽聽聽聽聽聽 ApmgtMessageData data = (ApmgtMessageData) object;
    聽聽聽聽聽聽聽聽聽聽聽 Message message = converter.toMessage(data.getMessageContent(), session);
    聽聽聽聽聽聽聽聽聽聽聽 message.setLongProperty("id", data.getMessageHeader().getId());
    聽聽聽聽聽聽聽聽聽聽聽 message.setIntProperty("receiver", data.getMessageHeader().getReceiver());
    聽聽聽聽聽聽聽聽聽聽聽 message.setIntProperty("sender", data.getMessageHeader().getSender());
    聽聽聽聽聽聽聽聽聽聽聽 message.setIntProperty("type", data.getMessageHeader().getType());
    聽聽聽聽聽聽聽聽聽聽聽 message.setStringProperty("sendPerson", data.getMessageHeader().getSendPerson());
    聽聽聽聽聽聽聽聽聽聽聽 log.info("鍙戦佹秷鎭痆MessageSender]:\n" + message);
    聽聽聽聽聽聽聽聽聽聽聽聽 return message;
    聽聽聽聽聽聽聽 } else {
    聽聽聽聽聽聽聽聽聽聽聽 return null;
    聽聽聽聽聽聽聽 }
    聽聽聽 }

    }
    娑堟伅綾繪枃浠堵?娑堟伅鐖剁被錛欰pmgtMessageData.java
    public class ApmgtMessageData<T extends Serializable>{

    聽聽聽 protected T messageContent;
    聽聽聽
    聽聽聽 protected MessageHeader messageHeader;

    聽聽聽 public T getMessageContent() {
    聽聽聽聽聽聽聽 return this.messageContent;
    聽聽聽 }

    聽聽聽 public MessageHeader getMessageHeader() {
    聽聽聽聽聽聽聽 return this.messageHeader;
    聽聽聽 }

    聽聽聽 public void setMessageContent(T messageContent) {
    聽聽聽聽聽聽聽 this.messageContent = messageContent;
    聽聽聽 }
    聽聽聽 public void setMessageHeader(MessageHeader messageHeader) {
    聽聽聽聽聽聽聽 this.messageHeader = messageHeader;
    聽聽聽 }

    }
    娑堟伅灞炴х殑涓涓被MessageHeader.java
    public class MessageHeader {

    聽聽聽 /**
    聽聽聽聽 * 娑堟伅ID
    聽聽聽聽 */
    聽聽聽 private long id;

    聽聽聽 /**
    聽聽聽聽 * 娑堟伅綾誨瀷
    聽聽聽聽 */
    聽聽聽 private int type;

    聽聽聽 /**
    聽聽聽聽 * 娑堟伅鍙戦佹柟錛屽彂閫佹秷鎭殑妯″潡
    聽聽聽聽 */
    聽聽聽 private int sender;

    聽聽聽 /**
    聽聽聽聽 * 娑堟伅鎺ユ敹鏂癸紝鎺ユ敹娑堟伅鐨勬ā鍧?br />聽聽聽聽 */
    聽聽聽 private int receiver;

    聽聽聽 /**
    聽聽聽聽 * 娑堟伅鍙戦佽咃紝鍏蜂綋鐨勭敤鎴?br />聽聽聽聽 */
    聽聽聽 private String sendPerson;

    聽聽聽 public MessageHeader(){
    聽聽聽聽聽聽聽 this.id = System.currentTimeMillis() ;
    聽聽聽 }
    聽聽聽
    聽聽聽 public long getId() {
    聽聽聽聽聽聽聽 return id;
    聽聽聽 }

    聽聽聽 public void setId(long id) {
    聽聽聽聽聽聽聽 this.id = id;
    聽聽聽 }

    聽聽聽 public String getSendPerson() {
    聽聽聽聽聽聽聽 return sendPerson;
    聽聽聽 }

    聽聽聽 public void setSendPerson(String sendPerson) {
    聽聽聽聽聽聽聽 this.sendPerson = sendPerson;
    聽聽聽 }

    聽聽聽 public int getReceiver() {
    聽聽聽聽聽聽聽 return receiver;
    聽聽聽 }

    聽聽聽 public void setReceiver(int receiver) {
    聽聽聽聽聽聽聽 this.receiver = receiver;
    聽聽聽 }

    聽聽聽 public int getSender() {
    聽聽聽聽聽聽聽 return sender;
    聽聽聽 }

    聽聽聽 public void setSender(int sender) {
    聽聽聽聽聽聽聽 this.sender = sender;
    聽聽聽 }

    聽聽聽 public int getType() {
    聽聽聽聽聽聽聽 return type;
    聽聽聽 }

    聽聽聽 public void setType(int type) {
    聽聽聽聽聽聽聽 this.type = type;
    聽聽聽 }

    }

    娑堟伅浣撶殑綾籑odPasswordRequest.java
    public class ModPasswordRequest implements Serializable{


    聽聽聽 private static final long serialVersionUID = 1L;

    聽聽聽 /**
    聽聽聽聽 * 鏃у瘑鐮?br />聽聽聽聽 */
    聽聽聽 private String oldPassword;
    聽聽聽
    聽聽聽 /**
    聽聽聽聽 * 鏂板瘑鐮?br />聽聽聽聽 */
    聽聽聽 private String newPassword;

    聽聽聽 public String getNewPassword() {
    聽聽聽聽聽聽聽 return newPassword;
    聽聽聽 }

    聽聽聽 public void setNewPassword(String newPassword) {
    聽聽聽聽聽聽聽 this.newPassword = newPassword;
    聽聽聽 }

    聽聽聽 public String getOldPassword() {
    聽聽聽聽聽聽聽 return oldPassword;
    聽聽聽 }

    聽聽聽 public void setOldPassword(String oldPassword) {
    聽聽聽聽聽聽聽 this.oldPassword = oldPassword;
    聽聽聽 }

    }

    娑堟伅綾伙細ApmgtModPasswordRequest.java
    public class ApmgtModPasswordRequest extends ApmgtMessageData<ModPasswordRequest> {
    聽聽聽
    聽聽聽
    聽聽聽
    聽聽聽 private static final int REQ_MODPASSWORD = 0;
    聽聽聽 private static final int INTF = 1;
    聽聽聽 private static final int APMGT = 2;

    聽聽聽 public void init(){
    聽聽聽聽聽聽聽 messageHeader = new MessageHeader();
    聽聽聽聽聽聽聽 messageContent = new ModPasswordRequest();
    聽聽聽聽聽聽聽 messageHeader.setType(REQ_MODPASSWORD);
    聽聽聽聽聽聽聽 messageHeader.setSender(INTF);
    聽聽聽聽聽聽聽 messageHeader.setReceiver(APMGT);
    聽聽聽聽聽聽聽 messageContent.setNewPassword("123456");
    聽聽聽聽聽聽聽 messageContent.setOldPassword("654321");
    聽聽聽 }
    聽聽
    }
    鏈鍚庢槸嫻嬭瘯綾籑ain.java

    聽聽聽 public class Main {

    聽聽聽 public static void main(final String[] args) throws Exception {
    聽聽聽聽聽聽聽
    聽聽聽聽聽聽聽 PropertyConfigurator.configure("log4j.properties");
    聽聽聽聽聽聽聽
    聽聽聽聽聽聽聽 AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] { "spring-jms.xml" });
    //聽聽聽聽聽聽聽 ctx.registerShutdownHook();
    聽聽聽聽聽聽聽
    聽聽聽聽聽聽聽 IApmgtMessageProducer producer = (IApmgtMessageProducer)ctx.getBean("producer");
    聽聽聽聽聽聽聽
    聽聽聽聽聽聽聽 ApmgtModPasswordRequest messageData = new ApmgtModPasswordRequest();
    聽聽聽聽聽聽聽 messageData.setMessageHeader(new MessageHeader());
    聽聽聽聽聽聽聽 messageData.setMessageContent(new ModPasswordRequest());
    聽聽聽聽聽聽聽 messageData.init();
    聽聽聽聽聽聽聽
    聽聽聽聽聽聽聽 producer.sendMessage(messageData);
    聽聽聽 }
    }
    榪樻湁涓や釜閰嶇疆鏂囦歡錛岀涓涓猻pring-jms.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="[url]http://www.springframework.org/schema/beans"[/url]
    聽聽聽 xmlns:xsi="[url]http://www.w3.org/2001/XMLSchema-instance"[/url]
    聽聽聽 xsi:schemaLocation="[url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans.xsd">[/url]


    聽聽聽 <bean id="propertyConfigurer"
    聽聽聽聽聽聽聽 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    聽聽聽聽聽聽聽 <property name="locations">
    聽聽聽聽聽聽聽聽聽聽聽 <list>
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <value>apmgt.properties</value>
    聽聽聽聽聽聽聽聽聽聽聽 </list>
    聽聽聽聽聽聽聽 </property>
    聽聽聽 </bean>

    聽聽聽 <!-- ####################################### -->
    聽聽聽 <!--聽聽聽聽聽聽聽聽聽 JMS Spring Beans聽聽聽聽聽聽聽聽聽聽聽聽聽聽 -->
    聽聽聽 <!-- ####################################### -->

    聽聽聽 <!-- Jms ConnectionFactory -->
    聽聽聽 <bean id="connectionFactory"
    聽聽聽聽聽聽聽 class="org.apache.activemq.ActiveMQConnectionFactory">
    聽聽聽聽聽聽聽 <property name="brokerURL" value="${jms.brokerURL}" />
    聽聽聽 </bean>

    聽聽聽 <!-- Spring JMS SimpleConverter -->
    聽聽聽 <bean id="simpleConverter"
    聽聽聽聽聽聽聽 class="org.springframework.jms.support.converter.SimpleMessageConverter" />

    聽聽聽 <!-- JMS Queue Template -->
    聽聽聽 <bean id="jmsTemplate"
    聽聽聽聽聽聽聽 class="org.springframework.jms.core.JmsTemplate102">
    聽聽聽聽聽聽聽 <property name="connectionFactory" ref="connectionFactory"/>
    聽聽聽聽聽聽聽 <property name="timeToLive" value="${jms.timeToLive}"/>
    聽聽聽聽聽聽聽 <property name="defaultDestinationName" value="${jms.destinationName.cmpp}" />
    聽聽聽聽聽聽聽 <property name="messageConverter" ref="messageConverter" />
    聽聽聽聽聽聽聽 <property name="receiveTimeout" value="${jms.receiveTimeout}" />
    聽聽聽 </bean>

    聽聽聽 <!-- Message Converter -->
    聽聽聽 <bean id="messageConverter"
    聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.ApmgtMessageConverter">
    聽聽聽聽聽聽聽 <property name="converter">
    聽聽聽聽聽聽聽聽聽聽聽 <ref local="simpleConverter" />
    聽聽聽聽聽聽聽 </property>
    聽聽聽 </bean>

    聽聽聽 <!-- Message porducer -->
    聽聽聽 <bean id="producer"
    聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.DefaultApmgtMessageProducer">
    聽聽聽聽聽聽聽 <property name="jmsTemplate" ref="jmsTemplate" />
    聽聽聽 </bean>

    聽聽聽 <!-- this is the Message Driven POJO (MDP) -->
    聽聽聽 <bean id="messageListener"
    聽聽聽聽聽聽聽 class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    聽聽聽聽聽聽聽 <constructor-arg>
    聽聽聽聽聽聽聽聽聽聽聽 <bean
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class="com.liangj.apmgt.jms.DefaultApmgtMessageListener" />
    聽聽聽聽聽聽聽 </constructor-arg>
    聽聽聽聽聽聽聽 <property name="defaultListenerMethod" value="onMessage" />
    聽聽聽聽聽聽聽 <property name="messageConverter" ref="messageConverter" />
    聽聽聽 </bean>

    聽聽聽 <!-- and this is the attendant message listener container -->
    聽聽聽 <bean id="listenerContainer"
    聽聽聽聽聽聽聽 class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    聽聽聽聽聽聽聽 <property name="connectionFactory" ref="connectionFactory" />
    聽聽聽聽聽聽聽 <property name="destinationName" value="${jms.destinationName.cmpp}" />
    聽聽聽聽聽聽聽 <property name="messageSelector" value="${jms.messageSelector}" />
    聽聽聽聽聽聽聽 <property name="messageListener" ref="messageListener" />
    聽聽聽 </bean>
    </beans>

    apmgt.properties

    #jms properties
    jms.brokerURL=tcp://localhost:61616
    jms.receiveTimeout=3000
    jms.destinationName.cmpp=cmpp
    jms.messageSelector=receiver=2
    #one day is 86400000 ms. 0 is means that it lives forever.
    jms.timeToLive=86400000

    杞細http://blog.iecn.net/blog/html/do-showone-tid-1035.html



  • ]]>
    Spring Ioc浠ュ強DI銆?/title><link>http://www.aygfsteel.com/Duffblog/articles/75446.html</link><dc:creator>榪界悆鑰?/dc:creator><author>榪界悆鑰?/author><pubDate>Mon, 16 Oct 2006 09:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/Duffblog/articles/75446.html</guid><wfw:comment>http://www.aygfsteel.com/Duffblog/comments/75446.html</wfw:comment><comments>http://www.aygfsteel.com/Duffblog/articles/75446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Duffblog/comments/commentRss/75446.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Duffblog/services/trackbacks/75446.html</trackback:ping><description><![CDATA[Ioc錛欼nversion Of Control銆傚嵆鎺у埗鍙嶈漿銆?br />IoC妯″紡鍩烘湰涓婃槸涓鍊嬮珮灞ょ殑姒傚康錛屽湪Martin Fowler鐨処nversion of Control Containers and the Dependency Injection pattern涓珖鍒幫紝瀵︾従IoC鏈夊叐紼柟寮忥細Dependency Injection鑸嘢ervice Locator銆?br />鎮(zhèn)ㄥ彲浠ュ湪涓嬮潰鐨勭恫鍧涓壘鍒拌┎綃囨枃绔狅細<br /><span id="wmqeeuq" class="nobr"><a title="Visit page outside Confluence" rel="nofollow">http://www.martinfowler.com/articles/injection.html</a>錛堣繖涓濂藉ソ鐪嬬湅銆傦級<br />Spring鎵鎺$敤鐨勬槸Dependency Injection渚嗗鐝綢oC錛屼腑鏂囩炕璀偤渚濊炒娉ㄥ叆錛屼緷璩存敞鍏ョ殑鎰忕京鏄細銆屼繚鐣欐娊璞′粙闈紝璁撶祫浠朵緷璩存柤鎶借薄浠嬮潰錛岀暥緄勪歡瑕佽垏鍏跺畠瀵﹂殯鐨勭墿浠剁櫦鐢熶緷璩撮棞淇傛檪錛岃棄閬庢娊璞′粙闈締娉ㄥ叆渚濊炒鐨勫闅涚墿浠躲傘?br />渚濊炒娉ㄥ叆鍦∕artin Fowler鐨勬枃绔犱腑璜囧埌浜嗕笁紼鐝炬柟寮忥細interface injection銆乻etter injection鑸嘽onstructor injection銆備甫鍒嗗垾紼卞叾鐐簍ype 1 IoC銆乼ype 2 IoC鑸噒ype 3 IoC銆?br />錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br />Spring鏀寔type2Ioc錛坰etter錛夛紝浠ュ強type3Ioc錛坈onstructor 錛夈傚湪Xml涓氨鏀寔榪欎袱縐嶃?br />type 1 IoC錛岃劔闆㈢洰鍓嶉欏嬪鍣紝灝卞繀闋堜慨鏀圭▼寮忥紝鎯蟲兂鍦ㄦ洿瑜囬洔鐨勪緷璩撮棞淇備腑鐢㈢敓鏇村瑜囬洔鐨勪粙闈紝緄勪歡鑸囧鍣紙妗嗘灦錛夌殑渚濊炒鏈冩洿鍔犺闆滐紝鏈寰屼嬌寰楃祫浠剁劇娉曞緸瀹瑰櫒涓劔闆€?br />鎵浠ype 1 IoC鍏鋒湁寮風(fēng)殑渚靛叆鎬э紝浣跨敤瀹冧締瀵︾従渚濊炒娉ㄥ叆鏈冧嬌寰楃祫浠剁浉渚濇柤瀹瑰櫒錛堟鏋訛級錛岄檷浣庣祫浠剁殑閲嶇敤鎬с?br />錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br />鎬葷粨錛?br />Spring鐨勬牳蹇冩槸鍊婭oC瀹瑰櫒錛屾?zhèn)ㄥ彲浠ョ敤setter鎴朿onstructor鐨勬柟寮忎締瀵︾従鎮(zhèn)ㄧ殑妤嫏鐗╀歡錛岃嚦鏂肩墿浠惰垏鐗╀歡涔嬮枔鐨勯棞淇傚緩绔嬶紝鍓囬忛亷緄勬厠璦畾錛岃畵Spring鍦ㄥ煼琛屾檪鏈熸牴鎿氱祫鎱嬫獢鐨勮ō瀹氫締鐐烘?zhèn)ㄥ缓绔嬬墿錃g涔嬮枔鐨勪緷璩撮棞淇傦紝鎮(zhèn)ㄤ笉蹇呯壒鍦版挵瀵竴浜汬elper渚嗚嚜琛屽緩绔嬮欎簺鐗╀歡涔嬮枔鐨勪緷璩撮棞淇傦紝閫欎笉鍍呮笡灝戜簡澶ч噺鐨勭▼寮忔挵瀵紝涔熼檷浣庝簡鐗╀歡涔嬮枔鐨勮﹀悎紼嬪害銆?/span><img src ="http://www.aygfsteel.com/Duffblog/aggbug/75446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Duffblog/" target="_blank">榪界悆鑰?/a> 2006-10-16 17:08 <a href="http://www.aygfsteel.com/Duffblog/articles/75446.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> 主站蜘蛛池模板: <a href="http://" target="_blank">田东县</a>| <a href="http://" target="_blank">福鼎市</a>| <a href="http://" target="_blank">金阳县</a>| <a href="http://" target="_blank">延吉市</a>| <a href="http://" target="_blank">河南省</a>| <a href="http://" target="_blank">信丰县</a>| <a href="http://" target="_blank">遂宁市</a>| <a href="http://" target="_blank">睢宁县</a>| <a href="http://" target="_blank">荣成市</a>| <a href="http://" target="_blank">宜章县</a>| <a href="http://" target="_blank">内江市</a>| <a href="http://" target="_blank">和平区</a>| <a href="http://" target="_blank">乌海市</a>| <a href="http://" target="_blank">高唐县</a>| <a href="http://" target="_blank">三门县</a>| <a href="http://" target="_blank">大洼县</a>| <a href="http://" target="_blank">七台河市</a>| <a href="http://" target="_blank">平阳县</a>| <a href="http://" target="_blank">双江</a>| <a href="http://" target="_blank">澄城县</a>| <a href="http://" target="_blank">柳州市</a>| <a href="http://" target="_blank">巢湖市</a>| <a href="http://" target="_blank">乐东</a>| <a href="http://" target="_blank">邻水</a>| <a href="http://" target="_blank">鸡东县</a>| <a href="http://" target="_blank">民勤县</a>| <a href="http://" target="_blank">潼南县</a>| <a href="http://" target="_blank">广丰县</a>| <a href="http://" target="_blank">锡林郭勒盟</a>| <a href="http://" target="_blank">太和县</a>| <a href="http://" target="_blank">永善县</a>| <a href="http://" target="_blank">泰和县</a>| <a href="http://" target="_blank">绵竹市</a>| <a href="http://" target="_blank">密云县</a>| <a href="http://" target="_blank">黄石市</a>| <a href="http://" target="_blank">溆浦县</a>| <a href="http://" target="_blank">阆中市</a>| <a href="http://" target="_blank">黄龙县</a>| <a href="http://" target="_blank">石嘴山市</a>| <a href="http://" target="_blank">淮安市</a>| <a href="http://" target="_blank">大洼县</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>