在java web开发中,不同的客户端需要共享的数据为什么要存放在application

在java web开发中,不同的客户端需要共享的数据为什么要存放在application,第1张

没有说一定要放在application呐,放缓存、放数据库、放其他地方都是可以的呀,只要达到了共享用户数据的目的就都可以呐。 拿最简单的用户sessionid来说,默认是tomcat容器帮着你在管理,这时候就是你说的application,就是指应用层。 其实sessionid放缓存就更好呀,因为那样可以很好的切换到分布式,不然每台tomcat都管理一套sessionManager就不好进行服务器的水平扩展了。

1、Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。

2、Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。

3、通常是不需要指定一个Application的,系统会自动帮咱们创建,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进行注册(只需要给application标签增加name属性,并添加自己的 Application的名字即可)。

4、启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。那么咱们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,咱们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。

在ehcache.xml文件中配置查询缓存参数,ehcache.xml文件配置如下:

<ehcache>

   

    <!-- diskStore元素,配置一个目录,这个目录用来存放数据,

    也就是说,如果EhCache需要把数据写入磁盘,将会写到这个目录下 -->

    <diskStore path="java.io.tmpdir"/>

    <defaultCache

        maxElementsInMemory="10000"

        eternal="false"

        overflowToDisk="true"

        timeToIdleSeconds="120"

        timeToLiveSeconds="120"

        diskPersistent="false"

        diskExpiryThreadIntervalSeconds="120"/>

        

        <cache name="ehcacheName"

        maxElementsInMemory="3000"

        eternal="false"

        timeToIdleSeconds="3600"

        timeToLiveSeconds="36000"

        overflowToDisk="true"

        />

</ehcache>

2. spring的配置

第一步:给指定方法配置缓存/src/main/resources/applicationContext-resources.xml

<ehcache:proxy id="userGroupServiceProxy" refId="userGroupService" >

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupWithDetailByMemberId" />

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupWithDetailByGroupId" />

   <ehcache:caching cacheName="cash15Min"  methodName="selectuserGroupById" />

</ehcache:proxy>

配置参数的含义如下:

id:唯一标识符

refId:需要配置缓存的service或者controller

cacheName:缓存名称

methodName:需要缓存的方法,这个方法必须是shoppingHomeService中的方法

第二步:在控制器中注入依赖的缓存userGroupServiceProxy /src/main/webapp/WEB-INF/dispatcher-servlet.xml

<bean id="PFController" class="com.java.mall.controller.PFController">

        <property name="userService" ref="userService"></property>

        <property name="userGroupService" ref="userGroupServiceProxy"></property>

</bean>

同时需要在实体类中注入依赖,提供setter方法,

private userGroupService userGroupService

public void setuserGroupService(userGroupService userGroupService) {

    this.userGroupService = userGroupService


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6714090.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存