Maison >Java >javaDidacticiel >Comment SpringBoot intègre SpringSession pour implémenter la connexion distribuée
Par exemple, deux noms de domaine :
aaa.yupi.com
bbb.yupi.com
Si vous souhaitez partager des cookies, vous pouvez planter un niveau supérieur nom de domaine public, tel que yupi .com
L'utilisateur se connecte en A, donc la session (informations de connexion de l'utilisateur) existe sur A
Par conséquent, lors de la demande de B, B n'a pas d'informations utilisateur, il ne le reconnaît donc pas.
Stockage partagé au lieu de mettre les données dans la mémoire d'un seul serveur
Présentation de Redis et possibilité de faire fonctionner Redis :
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.6.4</version> </dependency>
Présentation de l'intégration de spring-session et redis pour stocker automatiquement les sessions dans redis :
<!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>2.6.3</version> </dependency>
Modifier la configuration de stockage spring-session spring.session.store-type
La valeur par défaut est none, ce qui signifie qu'elle est stockée sur un serveur unique
store-type : redis, ce qui signifie des sessions de lecture et d'écriture depuis redis
redis: host: localhost port: 6379 session: timeout: 60 store-type: redis
Effet :
/** * @author 刘宇浩 */ @RestController @RequestMapping("/session") public class SessionController { public static final String key = "USERLOGINSTATE"; @GetMapping("/set") public Result setSession(HttpServletRequest request) { User user = new User(); user.setClassName("21软件3"); user.setName("lyl"); request.getSession().setAttribute(key, user); return ResultGenerator.genSuccessResult(200, "成功"); } @GetMapping("/get") public Result getSession(HttpServletRequest request){ User userloginstate = (User)request.getSession().getAttribute(key); System.out.println(userloginstate.getName()); System.out.println(userloginstate.getClassName()); return ResultGenerator.genSuccessResult(200,"成功"); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!