Lassen Sie uns heute die Probleme aufzeichnen, die ich während der Integration des Frameworks gestoßen bin:
1. Bei der Verwendung von Redis zur Implementierung der Sitzungsfreigabe ist der Projektstart -Bericht keine Bean mit dem Namen "SpringSessionRepositoryFilter" definiert Ausnahme
2. Beim Aufrufen der Cache -Werkzeugklasse ist der injizierte Jedispool NULL (ein detaillierter Fehler im Zusammenhang mit dem Federscan).
Ok, ich habe angefangen, die von mir integrierten Dateien hinzuzufügen
pom.xml hängt vom JAR -Paket ab
<!-Frühlingssitzung beginnt-> <depeaponcy> <gruppeID> redis.clients </GroupId> <artifactId> jedis </artifactId> <version> 2.9.0 </Version> </abhängig> <Depopenty> <GroupId> org.springFramework.Session </GroupId> <artifactid> Spring-Sesion-Session-Data-Data-Data-Data-Data-Data-Data- </abhängig>
Web.xml -Konfiguration
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_30.xsd" use/javaee <Param-name> contextConFigLocation </param-name> <param-value> classPath: Spring-cfg.xml </param-value> </context-param> <!-Sitzungsfilter im Filterkopf-> <Filter> <filter-name> SpringSessionRepositoryFilter </filter-name> <Filter-Klasse> org.springFramework.web.filter.delegatingFilterproxy </Filter-Klasse> </Filter> <Filtermapping> <Filter-NAME> SpringSessionRepositoryFilter </Filter-Name> <URL-PUGERN>/*</*</Url-Filter> </Filter-Filter> </Filter-Filter-Filter> </Filter-Filter-Filter> </filter> </filter> </filter> </ph> </</maping> <!-| <Filter-name> codierungfilter </filter-name> <filterklasse> org.springFramework </init-param> </filter> <filter- mapping> <filter-name> codingFilter </filter-name> <url-pattern>/*</url-pufter> </filter-mapping> <!-Spring Listener-> <Hörer> <Hörer-Class> org. </hörer> <!-Spring MVC-> <servlet> <servlet-name> Springmvc </Servlet-Name> <Servlet-Class> org.springframework.web.servlet.DispatcherServlet </Servlet-Class> <init-param <param-value> classPath: spring-mvc.xml </param-value> </init-param> <load-on-startup> 1 </load-on-Startup> <Async-Supported> true </async-supportiert> </servlet> <Servlet-Mapping> <Servlet-Maping> <Servlet-Nam> <URL-Muster>/</url-pattern> </servlet-mapping> <!-<Servlet-Mapping> <Servlet-name> Standard </Servlet-Name> <URL-Pattern>/static/*</url-pattern> </servlet-mapping>-> </web-Appl> </web-Appl> </web-app>
FRINDE-CFG.XML-Konfigurationsdatei
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa xmlns: util = "http://www.springframework.org/schema/util" xsi: schemalocation = "http://www.spingframework.org/schema/beans http://www.springframe.org/schema/beans-ban- http://www.springframework.org/schema/context 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.g/schema/util http://www.springframework.org/schema/util/spring-util.xsd "> <! <Context: Komponenten-scan-Basis-Package = "com.zyt"> <context: exklude-filter type = "Annotation" Expression = "org.springFramework.steretype.Controller"/> </context: component scan> <!-Lesen Sie mehrere Eigenschaften Konfigurationsdateien-> <bean Id = "PropertyConfig"> < <wert> classPath: jdbc.properties </value> <wert> classPath: redis.properties </value> </list> </property> </bean> <!-Jedis Connection Pool-> <bean id = "poolconfig"> <Property name = "maxidle" value = "$ {redis.maxid.maxidle}}}}"/< value = "$ {redis.maxActive}"/> <Eigenschaft name = "maxwaitmillis" value = "$ {redis.maxwait}"/> <Property name = "testonborrow" value = "$ {Redis.TestonBorrow}"/> </ban> <!-Redis-Poolpool ist keine geforderte Option: Timeout/Password/Password-> <! <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 Connection Factory --> <bean id="jedisConnectionFactory" > <property name="poolConfig" ref="poolConfig"/> <property name="port" value="${redis.port}"/> <property name="hostName" value = "$ {redis.host}"/> <!-<Eigenschaft name = "password" value = "$ {redis.pass}"/>-> </bean> <util: konstantes static-field = "org.springframework id = "redistemplate"> <Eigenschaft name = "ConnectionFactory" ref = "jedisconnectionFactory"/> </bean> <!-redis end-> <!-Frühlingssitzung-> <bean id = "redishttpSessionconfiguration"> <Property name = "maxinactiveIctiveSeanvalation" -Vote "itress =" 1800 "/> </bohne> </£ id = "sqlSessionFactory"> <Eigenschaft name = "dataSource" ref = "dataSource"/> <Eigenschaft name = "mapperlocations" value = "classPath: com/zyt/**/**. name = "sqlSessionFactoryBeanname" value = "sqlSessionFactory"/> </bean> <!-Transaktionsmanagement mit Annotation-> <tx: Annotationsgetriebene Transaktions-Manager = "TransactionManager"/> <bean id = "transactionManager"> <property-Manager = datasource "datasource"-"datasource"-"datasource"-"datasource"- Einstellungen-> <bean id = "dataSource" Destroy-method = "close" init-method = "init"> <Eigenschaft name = "url" value = "$ {jdbc_url}"/> <Eigenschaft name = "userername" value = "$ {jdbc_username}"/> <Eigenschaft ". -> <Eigenschaft name = "initialSize" value = "0"/> <!-Maximale Anzahl von Verbindungen, die vom Verbindungspool verwendet werden-> <Eigenschaft name = "maxActive" value = "20"/> <Eigenschaft name = "minimal idle" value = "Eigenschaftsname" minidle "value =" 0 "/> <!-Die maximale Verbindungswartungszeit-> <Eigenschaftsname =" maxwait "=" 60000 ° C "/> <probiumsname-< name = "poolpreparedStatements" value = "true"/> <Eigenschaft name = "MaxpoolProparedStatementPerconectionSize" value = "33"/> -> <Eigenschaft name = "validationQuery" value = "$ {validationQuery}"/> <Property name = "testonborrow" value "yapiens value = "true"/> <!-Konfigurieren Sie, wie lange es dauert, um ein Erkennungsintervall durchzuführen, um Leerlaufverbindungen zu erkennen, die in Millisekunden geschlossen werden müssen-> <Property name = "TimeBetweenevictionRunsmillis" Value = "60000"/> <!-Konfigurieren Sie die minimale Zeit für eine Übersetzung des Pools, in der milliskunden-> <immobilien namens "minictabictable-in-the-in-milliseconds-> <immobilien." value = "25200000"/> <!-Einschalten removeaBandoned-Funktion-> <Eigenschaft name = "removeAbandoned" value = "true"/> <!-1800 Sekunden, das heißt 30 Minuten-> <Eigenschaftsname = "RemoveaBandOnedTimeOut" Value = "1800"/<! Datenbank-> <!-<Eigenschaft name = "filter" value = "stat"/>-> <Eigenschaft name = "filter" value = "mergestat"/> </beans>jdbc.properties
DriverClassName = com.mysql.jdbc.driver validationQuery = select 1 jdbc_url = jdbc: mysql: // localhost: 3306/zyt_demo? useUnicode = true & charakterisch-utf-8 & zerodatetimebehavior = converttonly jdbc_username
Redis.Properties
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 #password =
Die oben genannte ist die integrierte Konfigurationsdatei, bei der die Konfiguration über Redis der Schlüssel zum Erfolg der Integration ist
Frage Zusammenfassung
1. Das Startprojekt wurde als Ausnahme nach der Integration der Integration aufgrund des Ortes der Konfigurationsdatei gemeldet, sodass das Startup nicht erfolgreich war. Versuchen Sie es mehrmals. Die obige Konfigurationsdatei kann verwendet werden.
2. Ich habe die Cache -Werkzeugklasse zuvor angerufen, und es zeigte sich, dass die Injektion von Jedispool leer war. In den Controller injiziert und es gab einen Wert. Denn die Art und Weise, wie ich die Werkzeugklasse auf dem Controller anrief, war neu, so dass die Feder die Jedispool -Injektion beim Scannen der Werkzeugklasse verlor. Es kann durch die Verwendung der Injektionswerkzeugklasse stattdessen im Controller gelöst werden.
Zum Beispiel:
Zusammenfassen
Der oben genannte Prozess ist der Prozess der Frühlingsintegration von Redis (Jedis), um die Sitzung zu realisieren. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!