国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Spring整合redis(jedis)實現Session共享的過程

Spring整合redis(jedis)實現Session共享的過程

2021-05-08 10:33Z濤子 Java教程

這篇文章主要介紹了Spring整合redis(jedis)實現Session共享,需要的朋友可以參考下

今天來記錄一下自己在整合框架過程中所遇到的問題:

1.    在用redis實現session共享時,項目啟動報 no bean named 'springsessionrepositoryfilter' is defined 異常

2.    在調用緩存工具類的時候顯示注入的jedispool為null (一個跟spring掃描有關的細節錯誤)

好了,開始上我整合的文件了

pom.xml依賴jar包

?
1
2
3
4
5
6
7
8
9
10
11
<!-- spring session begin -->
  <dependency>
   <groupid>redis.clients</groupid>
   <artifactid>jedis</artifactid>
   <version>2.9.0</version>
  </dependency>
  <dependency>
   <groupid>org.springframework.session</groupid>
   <artifactid>spring-session-data-redis</artifactid>
   <version>1.2.1.release</version>
  </dependency>

web.xml配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
 <context-param>
  <param-name>contextconfiglocation</param-name>
  <param-value>classpath:spring-cfg.xml</param-value>
 </context-param>
 <!--session過濾器 放在過濾器頭-->
 <filter>
  <filter-name>springsessionrepositoryfilter</filter-name>
  <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>springsessionrepositoryfilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <!-- 編碼過濾器 -->
 <filter>
  <filter-name>encodingfilter</filter-name>
  <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>
  <async-supported>true</async-supported>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>utf-8</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>encodingfilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <!-- spring監聽器 -->
 <listener>
  <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
 </listener>
 <!-- spring mvc-->
 <servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>
  <init-param>
   <param-name>contextconfiglocation</param-name>
   <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  <async-supported>true</async-supported>
 </servlet>
 <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>
 <!-- <servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>/static/*</url-pattern>
 </servlet-mapping>-->
</web-app>

spring-cfg.xml配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?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:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemalocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-4.0.xsd
  http://www.springframework.org/schema/aop
  http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
  http://www.springframework.org/schema/tx
  http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util.xsd"
>
  <!--開啟切面編程自動代理-->
  <aop:aspectj-autoproxy proxy-target-class="true"/>
  <!--掃描注解生成bean-->
  <context:annotation-config/>
  <!--包掃描-->
  <context:component-scan base-package="com.zyt">
      <context:exclude-filter type="annotation" expression="org.springframework.stereotype.controller"/>
  </context:component-scan>
  <!--讀取多個properties配置文件-->
  <bean id="propertyconfigurer"
     class="org.springframework.beans.factory.config.propertyplaceholderconfigurer">
    <property name="locations">
      <list>
        <value>classpath:jdbc.properties</value>
        <value>classpath:redis.properties</value>
      </list>
    </property>
  </bean>
  <!-- jedis連接池 -->
  <bean id="poolconfig" class="redis.clients.jedis.jedispoolconfig">
    <property name="maxidle" value="${redis.maxidle}"/>
    <property name="maxtotal" value="${redis.maxactive}"/>
    <property name="maxwaitmillis" value="${redis.maxwait}"/>
    <property name="testonborrow" value="${redis.testonborrow}"/>
  </bean>
  <!-- redis的連接池pool,不是必選項:timeout/password -->
  <bean id = "jedispool" class="redis.clients.jedis.jedispool">
    <constructor-arg index="0" ref="poolconfig"/>
    <constructor-arg index="1" value="${redis.host}"/>
    <constructor-arg index="2" value="${redis.port}" type="int"/>
    <constructor-arg index="3" value="${redis.timeout}" type="int"/>
    <!-- <constructor-arg index="4" value="${redis.password}"/>-->
  </bean>
  <!-- jedis連接工廠 -->
  <bean id="jedisconnectionfactory"
     class="org.springframework.data.redis.connection.jedis.jedisconnectionfactory">
    <property name="poolconfig" ref="poolconfig"/>
    <property name="port" value="${redis.port}"/>
    <property name="hostname" value="${redis.host}"/>
    <!-- <property name="password" value="${redis.pass}"/>-->
  </bean>
  <util:constant static-field="org.springframework.session.data.redis.config.configureredisaction.no_op"/>
  <!-- spring redis template -->
  <bean id="redistemplate" class="org.springframework.data.redis.core.stringredistemplate">
    <property name="connectionfactory" ref="jedisconnectionfactory"/>
  </bean>
  <!-- redis end -->
  <!-- spring session begin -->
  <bean id="redishttpsessionconfiguration"
     class="org.springframework.session.data.redis.config.annotation.web.http.redishttpsessionconfiguration">
    <property name="maxinactiveintervalinseconds" value="1800"/>
  </bean>
  <!--整合mybatis-->
  <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean">
    <property name="datasource" ref="datasource"/>
    <property name="mapperlocations" value="classpath:com/zyt/**/**.xml"/>
  </bean>
  <bean class="org.mybatis.spring.mapper.mapperscannerconfigurer">
    <property name="basepackage" value="com.zyt.*.dao"/>
    <property name="sqlsessionfactorybeanname" value="sqlsessionfactory"/>
  </bean>
  <!--聲明事務管理 采用注解方式-->
  <tx:annotation-driven transaction-manager="transactionmanager"/>
  <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager">
    <property name="datasource" ref="datasource"/>
  </bean>
  <!--數據庫設置-->
  <bean id="datasource" class="com.alibaba.druid.pool.druiddatasource"
     destroy-method="close" init-method="init">
    <property name="url" value="${jdbc_url}"/>
    <property name="username" value="${jdbc_username}"/>
    <property name="password" value="${jdbc_password}"/>
    <!-- 初始化連接大小 -->
    <property name="initialsize" value="0"/>
    <!-- 連接池最大使用連接數量 -->
    <property name="maxactive" value="20"/>
    <!-- 連接池最小空閑 -->
    <property name="minidle" value="0"/>
    <!-- 獲取連接最大等待時間 -->
    <property name="maxwait" value="60000"/>
    <!--
    <property name="poolpreparedstatements" value="true" />
    <property name="maxpoolpreparedstatementperconnectionsize" value="33" />
    -->
    <property name="validationquery" value="${validationquery}"/>
    <property name="testonborrow" value="false"/>
    <property name="testonreturn" value="false"/>
    <property name="testwhileidle" value="true"/>
    <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
    <property name="timebetweenevictionrunsmillis" value="60000"/>
    <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
    <property name="minevictableidletimemillis" value="25200000"/>
    <!-- 打開removeabandoned功能 -->
    <property name="removeabandoned" value="true"/>
    <!-- 1800秒,也就是30分鐘 -->
    <property name="removeabandonedtimeout" value="1800"/>
    <!-- 關閉abanded連接時輸出錯誤日志 -->
    <property name="logabandoned" value="true"/>
    <!-- 監控數據庫 -->
    <!-- <property name="filters" value="stat" /> -->
    <property name="filters" value="mergestat"/>
  </bean>
</beans>

jdbc.properties

?
1
2
3
4
5
driverclassname=com.mysql.jdbc.driver
validationquery=select 1
jdbc_url=jdbc:mysql://localhost:3306/zyt_demo?useunicode=true&characterencoding=utf-8&zerodatetimebehavior=converttonull
jdbc_username=root
jdbc_password=root

redis.properties

?
1
2
3
4
5
6
7
8
9
redis.isopen=on
redis.host=127.0.0.1
redis.port=6379
redis.maxidle=300
redis.maxactive=600
redis.maxwait=1000
redis.testonborrow=true
redis.timeout=2000
#redis.password=

以上是整合的配置文件,其中有關redis的配置是整合成功的關鍵

問題總結

1.之前整合完啟動項目報異常,是因為配置文件放置的位置問題,以至于啟動不成功,多試幾遍,以上的配置文件是可以用的

2.之前調用緩存工具類,顯示注入jedispool為空,在controller那邊注入又有值,是因為我在controller那邊調用工具類的方式是new出來的,所以導致spring在掃描那個工具類時丟失jedispool注入,在controller中改用注入工具類的形式即可解決

例如:

Spring整合redis(jedis)實現Session共享的過程

Spring整合redis(jedis)實現Session共享的過程

總結

以上所述是小編給大家介紹的spring整合redis(jedis)實現session共享的過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://blog.csdn.net/zengyunt/article/details/80605086

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精一区 | 亚洲欧美网站 | 欧美2区| 亚洲一区二区三区视频 | 午夜视频播放 | 性欧美成人播放77777 | 日韩欧美h | 伊人亚洲 | 午夜爱爱毛片xxxx视频免费看 | 一级a性色生活片毛片 | 午夜成人免费视频 | 国产精品不卡在线播放 | 日韩 欧美 中文 | 欧美一区二区三区在线看 | 成人午夜 | www午夜视频 | 色日韩| 欧美日韩综合精品 | www国产亚洲精品久久网站 | 狠狠操狠狠干 | 动漫卡通精品一区二区三区介绍 | 电影在线观看免费 | 免费黄色在线观看 | 欧美日韩中文在线观看 | av影音| 精品欧美乱码久久久久久1区2区 | 国产高清精品在线 | 成人不卡在线观看 | 精品无码久久久久久久动漫 | 一区二区三区视频 | 91精品久久久久久久久中文字幕 | 日韩免费在线视频 | 一本一本久久a久久精品综合妖精 | 成人在线免费观看小视频 | 欧美一级做a爰片久久高潮 免费在线毛片 | 免费的av网站 | 91精品国产综合久久福利软件 | 国产精品国产成人国产三级 | 国产精品成人一区二区 | 自拍偷拍在线视频 | 四虎久久精品 |