Сегодня давайте записываем проблемы, с которыми я столкнулся во время интеграции структуры:
1. При использовании Redis для реализации обмена сеансами отчет о начале проекта No Bean с именем «SpringsessionRepositoryfilter» не является исключением.
2. При вызове класса инструментов кеша вводимый jedispool является нулевой (подробная ошибка, связанная с пружинным сканированием)
Хорошо, я начал добавлять файлы, которые я интегрировал
pom.xml зависит от пакета JAR
<!-Spring Session Begin-> <dependency> <groupid> redis.clients </GroupId> <ArtifactId> jedis </artifactId> <serse> 2.9.0 </version> </resemending> <depertion> <groupd> org.springframework.session </GroupD> <ratifactid> Spring-session-data-redis </artifactid> 1.2. </Зависимость>
Конфигурация web.xml
<? 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 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd". <param-name> contextConfiglocation </param-name> <param-value> classpath: spring-cfg.xml </param-value> </context-param> <!-Сеанс-фильтр, помещенный в головку фильтра-> <Filter> <Filter-name> SpringsessionRepository </filter-name> <filter-class> org.springframework.web.filter.delegatingFilterProxy </filter-class> </filter> <Filter-Mapping> <Filetter-name> SpringsessionRepositoryfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-ancoding>/*</url-pattern> </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-mapper> <!-Spring Slierer-> <Learser> <liserer-class> org.spramework.web.werxettext.contextuler </ridencerer </slirlhener </risherereler> MVC-> <servlet> <vervlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name> contextConfiglocation </param-Ame> <value> classPath: Spress-Mvc.xml.xmlue </param-ame> <param-value> classpath: Spress-mvc.xml. <load-on-startup> 1 </load-on-startup> <async-warported> true </async-support> </servlet> <servlet-mapping> <servlet> <servlet-name> springmvc </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<! <servlet-name> по умолчанию </servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping>-> </web-app>
Файл конфигурации spring-cfg.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: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.springframe.orshema. xmlns: util = "http://www.springframework.org/schema/util" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.orgem. 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.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd "> <!-Откройте автоматический прокси для программирования фасферов-> <aop: AspectJ-autopProxy Proxy-class =" true "/> <! <context: component-scan base-package = "com.zyt"> <context: exclude-filter type = "annotation" expression = "org.springframework.steretype.controller"/> </context: component-scan> <!-Читать файлы конфигурации нескольких свойств-> <bean id = "PropertyConfigur"> <! <dulch> classpath: jdbc.properties </value> <dall> classpath: redis.properties </value> </list> </property> </bean> <!-jedis соединений-> <bean id = "poolconfig"> <свойство = "maxidle" value = "$ {redis.maxidle}"/> <property "Maxidle" value = "$ {redis.maxidle}"/> "maxTotal". value = "$ {redis.maxactive}"/> <name = "maxwaitmillis" value = "$ {redis.maxwait}"/> <name = "testonbourrow" value = "$ {redis.testonbourrow}"/> </bean> <!-Пул соединений Redis не является обязательным вариантом: Timeout-> <Bean> "redIsp" hed "=" redIsp "=" redIsp "=" redIsp "=" redIsp "=>" redIsp "heDISP". <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 = "$ {red writys. type = "int"/> <!-<constructor-arg index = "4" value = "$ {redis.password}"/> </bean> <!-Jedis Connection Factory-> <bean id = "jedisconnectionfactactor name = "hostname" value = "$ {redis.host}"/> <!-<name = "password" value = "$ {redis.pass}"/>-> </bean> <util: constant static-field = "org.springframework.session.data.redis.config.configerediscection.nop.session. <bean id = "redistemplate"> <property name = "connectionFactory" ref = "jedisconnectionFactory"/> </bean> <!-redis end-> <!-Spring Session Begin-> <Bean Id = "RedishtpsessionConfiguration"> <Proportice name = "maxinactiveInterinteconds" value = "1800"/> </bean> <bean> <beantiste-my value = "1800"/> </bean> <bean> <bean> <bean> <bean> <bean> <bean> id = "sqlSessionFactory"> <name = "name =" dataSource "ref =" dataSource "/> <name =" mapperlocations "value =" classpath: com/zyt/**/**. xml "/> </bean> <bean> <свойство =" basepackage " name = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"/> </bean> <!-Declare Transaction Management с использованием аннотации-> <TX: Annotation Transaction-Manager = "TransactionManager"/> <Bean Id = "TransactionManager"> name = "DataSource" Ref = "DataSource"/beabase> </beabase> <! <bean id = "dataSource" Drest Method = "close" init-method = "init"> <name = "url" value = "$ {jdbc_url}"/> <name = "username" value = "$ {jdbc_username}"/> <property name = "value =" $ {jdbc_passled} "/> </> <>-" value = "$ {jdbc_passled}"/> </> </> <>-"value" name = "initialSize" value = "0"/> <!-Максимальное количество соединений, используемых пулом соединений-> <name = "maxactive" value = "20"/> <name = "minimum idle" value = "name =" minidle "value =" 0 "/> <!-Получить максимальное время ожидания соединения-> <свойство =" maxwait ". name = "poolpreparedStatements" value = "true"/> <name = "maxpoolpreparedStatementPernectionsize" value = "33"/> -> <name = "validationquery" value = "$ {validationQuery}"/> <property name = "testonBorw" value = "false"/name "/" testonborr "/" value "/" value "/"/> "value"/"value"/"value"/"value". name = "testWhileIdle" value = "true"/> <!-Настройка того, сколько времени требуется для выполнения интервала обнаружения, чтобы обнаружить холостые соединения, которые необходимо закрыть, в миллисекундах-> <Property Name = "TimeWeedEvictionRunsmillis" Value = "60000"/> <! name = "mineVictableIdletImeMillis" value = "25200000"/> <!-Включите функцию удаления-> <name = "removeAbaboned" value = "true"/> <!-1800 секунд, то есть 30 минут-> <name = "removeAbadonimeout" value = "1800"/> <! value = "true"/> <!-База данных мониторинга-> <!-<name = "filters" value = "stat"/>-> <name = "filters" value = "merestat"/> </beans>JDBC.Properties
DriverClassName = com.mysql.jdbc.driver valyationquery = select 1 jdbc_url = jdbc: mysql: // localhost: 3306/zyt_demo? useunicode = true & charerencoding = utf-8 & zerodateTimebehavior = converttonul
Redis.properties
redis.isopen = on redis.host = 127.0.0.1 Redis.port = 6379 Redis.maxidle = 300 Redis.maxactive = 600 Redis.maxwait = 1000 Redis.testonborr
Выше приведено интегрированный файл конфигурации, где конфигурация о Redis является ключом к успеху интеграции
Сводка вопросов
1. Проект запуска был представлен в качестве исключения после интеграции интеграции из -за местоположения файла конфигурации, поэтому стартап был неудачным. Попробуйте несколько раз. Приведенный выше файл конфигурации может быть использован.
2. Я называл класс инструментов кеша раньше, и это показало, что инъекция Jedispool была пустой. Вводится в контроллер, и было значение. Потому что то, как я назвал класс инструментов на контроллере, было новым, поэтому весна потеряла инъекцию Jedispool при сканировании класса инструментов. Это может быть решено, используя класс инструментов впрыска в контроллере.
Например:
Суммировать
Выше приведено процесс Spring Integraiting Redis (Jedis) для реализации обмена сессиями, я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!