spring集成blazeds,使用@RemoteDestination实现远程服务-悄悄俏俏

14 篇文章 0 订阅
13 篇文章 0 订阅

不废话,直接说步骤

web.xml

添加以下

<servlet>
        <servlet-name>spring-flex</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-flex.xml</param-value>
		</init-param>
    </servlet>
这里的init-param必须写,不写默认会报找不到xx-servlet.xml文件。
<servlet-mapping>
        <servlet-name>spring-flex</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>
这里是接受了blazeds的访问,我是采用了异步加载即单独的文件的方式,如果将spring-flex.xml集成进applicationContext.xml的话,之后使用blazeds会再将此文件加载一遍,就造成了不必要的资源浪费了。

第一次访问时会动态加载spring-flex.xml文件中的内容,来完成初始化,所以第一次会比较慢。

下面是spring-flex.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:flex="http://www.springframework.org/schema/flex"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                           http://www.springframework.org/schema/flex
                           http://www.springframework.org/schema/flex/spring-flex-1.0.xsd
                           http://www.springframework.org/schema/context 
							http://www.springframework.org/schema/context/spring-context-2.5.xsd 
                           ">
<!--    <bean id="_messageBroker" class="org.springframework.flex.messaging.MessageBrokerFactoryBean" >  -->
<!--		<property name="servicesConfigPath" value="classpath:services-config.xml" />  -->
<!--	</bean> -->
	<context:component-scan base-package="com.wynlink.*" />
	<!-- flex -->
    <!-- 为了把请求路由给 MessageBroker,添加以下 tag;;;例如BlazeDS XML配置文件默认位置为:/ WEB-INF/flex/services-config.xml。但可以使用services-config-path属性重新配置路径。classpath在maven项目中默认为src/main/resources路径下。 -->
    <!-- 如果路径发送改变用这个<flex:message-broker services-config-path="classpath*:services-config.xml"/> -->
    <flex:message-broker services-config-path="classpath*:services-config.xml">
    </flex:message-broker>
</beans>
之前的配置文件中并没有写<context:component-scan base-package="com.wynlink.*" />,但是一样正常,只是最近突然发现spring-flex.xml在加载时不会帮我自动初始化使用@RemoteDestination注解的类,加上这个后就没问题了。

下面是类得部分代码

@Service("loginService")
@RemotingDestination(channels={"my-amf"}, value="loginService")
@Transactional(readOnly=true,rollbackFor=Exception.class)
public class LoginService {
	@Autowired
	private LoginDAO dao;
	
	public User login(User user) {
		try {
			return dao.login(user.getUsername(), user.getPassword());
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public String getLoginUser() {
		User user = (User) FlexContext.getFlexSession().getAttribute("user");
    	if(null == user)
    		return null;
    	return user.getUsername() + "|" + user.getRole();
	}
}
@service和@transaction是spring通过注解自动加载类和事务控制,跟本文无太大关系


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值