1、直接使用Redis控制台发布/订阅信息
在redis中:
使用publish channel message即可向指定的channel发布信息,注意只能向一个channel发送消息
使用subscribe channel [channel2...]即可监听指定的channel,注意可以同时监听多个channel2、使用Jedis在Java程序汇总发布/订阅消息
2.1、发布消息
使用Jedis发布消息相对订阅来说比较简单,直接调用Jedis对象的publish方法即可:
public class JedisUtil{undefined
private static JedisPool jedisPool = new
JedisPool(jedisPoolConfig,"localhost")
/**
* 作为生产者publish信息到制定的redis的channel
* @param channel
* @param msg
*/
public static void sendMsg(String channel,String msg){undefined
Jedis jedis = jedisPool.getResource()
jedis.publish(channel,msg)
if (jedis!=null)jedis.close()}}
楼上说法欠妥,你的service是一个包,spring提供的采用aop的方式来使用声明式事务,其中pointcut中的expression是定义接入点的表达式,LZ的表达式的含义大概是service包下的所有的类的所有的方法....调用类的时候不会开启什么事务,当service包的某一个类中的某一个业务方法被调用时,事务就开启了.1.你问的是不是save方法完了之后事务就关闭了,这里其实还有一个事务的传播特性在里面,而spring默认是采用的required,当你在没有事务的情况下调用save那将创建一个事务,当你在有事务的情况调用save则save是参加到当前事务中执行的.
2.你问是不是service中调用不同的DAO,事务会不会被多次开启,不会,结合以上讲,一个是切入点的问题,你的切入口在service而不是dao,所以....第二个,事务是采用的required方式,所以不论从哪个方面来想都可以想通这个问题.
3.session的问题,一般应用中都是"open session in view"的,也就是说在请求的时候打开session,在请求结束的时候关闭session,spring有对session进行管理的工具,如OpenSessinInViewInterceptor之类的东西可以帮组你....
厄....语言表达不好,希望能帮到LZ一些....
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)