【凯发旗舰官网】国信安教育 | 中国电科旗下高技能it教育培训机构-凯发旗舰

中国电科旗下高技能it教育培训机构

当前位置: 凯发旗舰-凯发k8国际手机app下载 公司动态 > 技术文章 > 【技术分享】spring boot 实现session共享与国际化

【技术分享】spring boot 实现session共享与国际化

2018-07-23 14:18:39

    修改pom.xml添加依赖.



 

org.springframework.session 

spring-session-data-redis



    添加配置类 redissessionconfig


    @configuration@enableredishttpsession(maxinactiveintervalinseconds = 60)//默认是1800秒过期,这里测试修改为60秒public class redissessionconfig {}


    添加一个控制器类 sessioncontroller 来进行测试@restcontrollerpublic class sessioncontroller { @requestmapping("/uid")  string uid(httpsession session) {  uuid uid = (uuid) session.getattribute("uid");  if (uid == null) { uid = uuid.randomuuid(); }  session.setattribute("uid", uid);  return session.getid();}}


    先访问http://localhost:8083/boot/uid


qq图片20190824142246.png


    然后修改配置文件application.yml


    spring: profiles: active: test


    重新运行idea,test配置文件配置的端口是8085,所以浏览器输入http://localhost:8085/boot/uid


640_wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1.webp.jpg

    我们看到两个uid是一样的。


    在这里我是使用spring boot redis来实现session共享,你还可以配合使用nginx进行负载均衡,同时共享session。


    关于nginx可以参考我的另一篇文章:nginx详解-服务器集群spring boot 国际化在spring boot中实现国际化是很简单的的一件事情。


    (1)在resources目录下面,我们新建几个资源文件,messages.properties相当于是默认配置的,当其它配置中找不到记录的时候,最后会再到这个配置文件中去查找。


    messages.propertiesmessages_en_us.propertiesmessages_zh_cn.properties依次在这三个配置文件中添加如下配置值:


    msg=我是中国人msg=i'm chinesemsg=我是中国人添加完之后,会自动将这几个文件包在一块.

640_wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1.webp (1).jpg


    需要注意的是这个命名是有讲究的, messages.properties 部分是固定的,不同语言的话,我们可以在它们中间用_区分。为什么是固定的命名,因为源码是硬编码这样命名的。


    2)新建一个配置文件 localeconfig.


@configuration

@enableautoconfiguration

@componentscan

public class localeconfig extends webmvcconfigureradapter { 

@bean 

public localeresolver localeresolver() { 

sessionlocaleresolver slr = new sessionlocaleresolver(); // 默认语言 slr.setdefaultlocale(locale.china); return slr; } 

@bean 

public localechangeinterceptor localechangeinterceptor() { 

localechangeinterceptor lci = new localechangeinterceptor(); // 参数名 lci.setparamname("lang"); return lci; } 

@override 

public void addinterceptors(interceptorregistry registry) {

 registry.addinterceptor(localechangeinterceptor()); 

}

}



    3)在控制器中,我们添加测试用的方法.


// i18n 

@requestmapping("/")

 public string i18n() { return "i18n"; } 

@requestmapping("/changesessionlanauage")

 public string changesessionlanauage(httpservletrequest request, httpservletresponse response, string lang){ 

     system.out.println(lang);

     localeresolver localeresolver = requestcontextutils.getlocaleresolver(request); 

    if("zh".equals(lang)){

          localeresolver.setlocale(request, response, new locale("zh", "cn")); 

    }else if("en".equals(lang)){ 

          localeresolver.setlocale(request, response, new locale("en", "us")); 

    } 

   return "redirect:/";

 }



    4)添加视图来展示,在templates下新建文件i18n.html,通过#可以直接获取国际化配置文件中的配置项的值。


 

 

$title[        discuz_code_82        ]lt;/title></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important"></head></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important"><body></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important">    <a href="/changesessionlanauage?lang=en">english(us)</a></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important">    <a href="/changesessionlanauage?lang=zh">简体中文</a><br /></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important">    <h3 th:text="#{msg}"></h3><h4 th:text="${message}"></h4></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important"></body></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important"></html></p></section></section></section><p><br/></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-family: 微软雅黑;font-variant-numeric: normal;font-variant-east-asian: normal;letter-spacing: 0.544px;line-height: 25.6px;text-align: justify;white-space: normal;widows: 1;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important"><br style=";padding: 0px;max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important"/></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-family: 微软雅黑;font-variant-numeric: normal;font-variant-east-asian: normal;letter-spacing: 0.544px;line-height: 25.6px;white-space: normal;widows: 1;text-align: center;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important"><span style=";padding: 0px;max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important;font-size: 15px"> </span></p><p style="margin-top: 0px;margin-bottom: 0px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-family: 微软雅黑;font-variant-numeric: normal;font-variant-east-asian: normal;letter-spacing: 0.544px;line-height: 25.6px;white-space: normal;widows: 1;text-align: center;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important"><span style=";padding: 0px;max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important;font-size: 15px"><img class=" __bg_gif" data-ratio="0.7327586206896551" data-src="https://mmbiz.qpic.cn/mmbiz_gif/zkjvam7m5bqkwlvcj0tl6b9zhvxcyxthdcomw9ksvf4tmiajnjwgrib0mdrycaeq4d9fn2vgd2e0czxllnjgxjug/640?wx_fmt=gif" data-type="gif" data-w="348" _width="348px" src="http://guoxinan.hntidu.com:99/u/cms/www/201908/24141944he4j.jpg" data-order="0" data-fail="0" style="padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; height: auto !important; width: 348px !important; visibility: visible !important;" width="450" height="331" border="0" vspace="0" title="" alt=""/></span></p><p style="text-align: center;"><img src="/u/cms/www/201908/24142518b8b4.jpg" title="640_wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1.webp.jpg" alt="640_wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1.webp.jpg" style="max-width: 100%; width: 640px; height: 816px;" width="640" height="816" border="0" vspace="0"/></p> </div> <div class="data_href"> <p>上一篇:<a href="http://www.gxaedu.com/jswz/745.jhtml">干货 | 不知道测试用例怎么写?别急!这...</a></p> <p>下一篇:<a href="http://www.gxaedu.com/jswz/747.jhtml">油腻大叔教你开启小程序的隐藏模式小游戏</a></p> </div> </div> <div class="a_star_cont_left_back"></div> <div class="contcat" style="padding-bottom: 0"> <div class="ac_head"> <div class="linke"></div> <p>相关推荐 </p> </div> <div class="a_star_cont_left_recommended"> <a href="http://www.gxaedu.com/jswz/1202.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw202007/2914150937l3.jpg);"> </div> </a> <a href="http://www.gxaedu.com/jswz/1177.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw202004/24112353tkdr.jpg);"> </div> </a> <a href="http://www.gxaedu.com/jswz/1172.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw202003/10164651ymut.jpg);"> </div> </a> <a href="http://www.gxaedu.com/jswz/652.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw201908/30175906iipp.jpg);"> </div> </a> <a href="http://www.gxaedu.com/jswz/712.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw201908/30175922x6xk.jpg);"> </div> </a> <a href="http://www.gxaedu.com/jswz/697.jhtml"> <div class="a_star_cont_left_recommended_img background" style="background-image: url(/uploads/image/ucw201908/30175943kp9a.jpg);"> </div> </a> </div> </div> </div> <div class="a_star_cont_rig"> <div class="a_star_cont_rig_new" style="margin: 0"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>最新文章 <span><a href="/gxadt/index.jhtml" target="_blank">更多</a></span> </p> </div> <ul style="border-top:1px solid #999" class="new_ul"> <li > <a href="http://www.gxaedu.com/gxadt/1207.jhtml" target="_blank">国家发改委调研组一行到国信安学校调研就业培训工作</a></li> <li > <a href="http://www.gxaedu.com/gxadt/1209.jhtml" target="_blank">中国电科举办第三届网络安全大赛暨网络安全培训 | 育新</a></li> <li > <a href="http://www.gxaedu.com/gxadt/1187.jhtml" target="_blank">开学第一课 |校长寄语:砥砺前行 勇攀高峰</a></li> <li > <a href="http://www.gxaedu.com/gxadt/1181.jhtml" target="_blank">官宣 | 国信安学校重磅升级打造百杰学员评估体系</a></li> <li > <a href="http://www.gxaedu.com/gxadt/1206.jhtml" target="_blank">国信安国企办学那些事儿!为学员提供哪些服务和保障?</a></li> </ul> </div> </div> <div class="a_star_cont_rig_new" style="padding-bottom: 0"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>公开课 </p> </div> <div class="swiper-container" id="detalis_pub"> <div class="swiper-wrapper"> <div class="swiper-slide"> <a href="http://ke.gxaedu.com/course/56" target="_blank"> <div class="div"> <img src="/u/cms/www/201908/25133038k5nf.jpg" alt="软件测试(loadrunner三朵花之“脚本”花-vug)"> <p class="title">软件测试(loadrunner三朵花之“脚本”花-vug)</p> <p class="dis">讲师:李老师 <span> 开课时间:2019-08-30</span> </p> </div> </a> </div> <div class="swiper-slide"> <a href="http://ke.gxaedu.com/course/98" target="_blank"> <div class="div"> <img src="/u/cms/www/201908/2320215790vt.png" alt="ps合成-1小时快速学会明星人像合成海报"> <p class="title">ps合成-1小时快速学会明星人像合成海报</p> <p class="dis">讲师:杨老师 <span> 开课时间:2019-08-11</span> </p> </div> </a> </div> </div> <div class="swiper-pagination"></div> </div> </div> </div> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <img src="/r/cms/www/guoxinan/bjtidu/img/ac/uifin11.jpg" alt="" class="uifin" style="margin-top: 15px"> </a> <div class="a_star_cont_rig_new"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>开班时间 <span><a href="/kcpx/index.jhtml" target="_blank">更多</a></span> </p> </div> <ul class="time new_ul"> <li> <div class="name"> ui设计就业班 </div> <div class="time"> 2020-09-21 </div> <div class="but"> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <button> 立即咨询</button></a> </div> </li> <li> <div class="name"> web前端就业班 </div> <div class="time"> 2020-09-21 </div> <div class="but"> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <button> 立即咨询</button></a> </div> </li> <li> <div class="name"> java就业班 </div> <div class="time"> 2020-09-21 </div> <div class="but"> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <button> 立即咨询</button></a> </div> </li> <li> <div class="name"> 软件测试就业班 </div> <div class="time"> 2020-09-21 </div> <div class="but"> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <button> 立即咨询</button></a> </div> </li> <li> <div class="name"> web前端基础班 </div> <div class="time"> 2020-09-21 </div> <div class="but"> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <button> 立即咨询</button></a> </div> </li> </ul> </div> </div> <div class="a_star_cont_rig_new" style="padding-bottom: 0"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>视频教程 </p> </div> <div class="swiper-container" id="detalis_pub1"> <div class="swiper-wrapper"> <div class="swiper-slide"> <a href="http://ke.gxaedu.com/course/186" target="_blank"> <div class="div"> <img src="/u/cms/www/201908/23204606kdlu.jpg" alt=""> <div class="fig"> webpack4入门到进阶 </div> </div> </a> </div> <div class="swiper-slide"> <a href="http://ke.gxaedu.com/course/221" target="_blank"> <div class="div"> <img src="/u/cms/www/201908/23205145kjr7.jpg" alt=""> <div class="fig"> javase入门基础语法 </div> </div> </a> </div> </div> <div class="swiper-pagination"></div> </div> </div> </div> <div class="a_star_cont_rig_new" style="padding-bottom: 0"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>优秀作品 </p> </div> <a href="http://www.gxaedu.com/javazp/591.jhtml" target="_blank"> <div class="acc_img" style="margin:20px auto"> <img src="/u/cms/www/201908/301833058uw0.png" alt=""> <div> <p class="title">bbd-sms系统</p> <p class="dis">浏览量:</p> </div> </div> </a> <a href="http://www.gxaedu.com/javazp/590.jhtml" target="_blank"> <div class="acc_img" style="margin:20px auto"> <img src="/u/cms/www/201908/30183457v6c6.jpg" alt=""> <div> <p class="title">汽车4s店销售系统</p> <p class="dis">浏览量:</p> </div> </div> </a> </div> </div> <div class="a_star_cont_rig_new"> <div class="loping"> <div class="ac_head"> <div class="linke"></div> <p>更多明星学员 <span><a href="/mxxy/index.jhtml" target="_blank">更多</a></span> </p> </div> <a href="http://www.gxaedu.com/mxxy/1205.jhtml" target="_blank"> <div class="details_celebrity"> <div class="left"> <img src="/u/cms/www/202008/25112057c28h.jpg" alt=""> </div> <div class="rig"> <p class="title">在国信安学前端做项目是一种什么样的体验,听听他们怎么说</p> <p class="dis">班级:220部ui </p> <p class="dis">薪资: </p> </div> </div> </a> <a href="http://www.gxaedu.com/mxxy/1203.jhtml" target="_blank"> <div class="details_celebrity"> <div class="left"> <img src="/u/cms/www/202008/12102742izx8.jpg" alt=""> </div> <div class="rig"> <p class="title">宅男刘同学:和这帮人一起学ui设计让我热血沸腾!</p> <p class="dis">班级:220部ui </p> <p class="dis">薪资: </p> </div> </div> </a> </div> </div> </div> </div> </div> </div> <footer> <script>(function() {var _53code = document.createelement("script");_53code.src = "https://tb.53kf.com/code/code/10050041/1";var s = document.getelementsbytagname("script")[0]; s.parentnode.insertbefore(_53code, s);})();</script> <script> var _hmt = _hmt || []; (function() { var hm = document.createelement("script"); hm.src = "https://hm.baidu.com/hm.js?9b15dbf99ebcfd94db4ac161c45325c1"; var s = document.getelementsbytagname("script")[0]; s.parentnode.insertbefore(hm, s); })(); </script> <div class="href maxwidth"> <p>凯发旗舰的友情链接 <img src="/r/cms/www/guoxinan/bjtidu/img/121.png" /> </p> <ul> <li><a href="http://ke.gxaedu.com/" target="_blank" onclick="$.get('/friendlink_view.jspx?id=1')" target="_blank">国信安网校平台</a></li> <li><a href="http://bbs.gxaedu.com/" target="_blank" onclick="$.get('/friendlink_view.jspx?id=2')" target="_blank">技术交流论坛</a></li> <li><a href="http://www.gxaedu.com/" target="_blank" onclick="$.get('/friendlink_view.jspx?id=3')" target="_blank">国信安凯发旗舰官网</a></li> <li><a href="http://www.westsec.com.cn/" target="_blank" onclick="$.get('/friendlink_view.jspx?id=4')" target="_blank">国信安基地</a></li> <li><a href="https://www.zhihu.com/org/guo-xin-an-82/activities" target="_blank" onclick="$.get('/friendlink_view.jspx?id=5')" target="_blank">国信安知乎专栏</a></li> </ul> </div> <div class="footer_back" style="background: #3e3e3e"> <div> <div class="footer_as maxwidth"> <div class="footer_box"> <div class="float"> <ul> <li class="active">精品课程</li> <a target="_blank" href="/javapx/index.jhtml"> <li>java培训</li> </a> <a target="_blank" href="/webqdpx/index.jhtml"> <li>web前端培训</li> </a> <a target="_blank" href="/uisjpx/index.jhtml"> <li>ui设计培训</li> </a> <a target="_blank" href="/rjcspx/index.jhtml"> <li>软件测试培训</li> </a> </ul> <ul> <a target="_blank" href="/gywm2/index.jhtml"> <li class="active">关于凯发旗舰</li> </a> <a target="_blank" href="/gxadt/index.jhtml"> <li>公司动态</li> </a> <a target="_blank" href="https://tb.53kf.com/code/client/10050041/1"> <li>联系凯发旗舰</li> </a> <a target="_blank" href="https://tb.53kf.com/code/client/10050041/1"> <li>校企合作</li> </a> <a target="_blank" href="https://tb.53kf.com/code/client/10050041/1"> <li>网站地图</li> </a> </ul> <ul> <li class="active">大家关注</li> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <li>乘车路线</li></a> <a href="https://tb.53kf.com/code/client/10050041/1" target="_blank"> <li>基地环境</li></a> <a target="_blank" href="/bmlc.jhtml"> <li>报名流程</li> </a> <a target="_blank" href="/cjwt2/index.jhtml"> <li>常见问题</li> </a> </ul> <cf class="cf"></cf> </div> <div class="float" style="width: 40%"> <div class="cont"> <p class="title">联系凯发旗舰/contact us</p> <div class="list"> <img src="/r/cms/www/guoxinan/bjtidu/img/f.png" alt=""> <p>400-9988-316 </p> </div> <div class="list"> <img src="/r/cms/www/guoxinan/bjtidu/img/f2.png" alt="" style="top:9px;"> <p>gxabase@westsec.com.cn </p> </div> <div class="list"> <img src="/r/cms/www/guoxinan/bjtidu/img/f3.png" alt=""> <p>成都市高新区天府二街云华路333号 ( 国家西部信息产业基地 ) </p> </div> </div> </div> <div class="float"> <img src="/r/cms/www/guoxinan/bjtidu/img/code.png" class="ac4_code"/> </div> </div> </div> </div> </div> <div class="fig maxwidth"> <p><a href="http://www.beian.miit.gov.cn" target="_blank">蜀icp备11000634号-10</a> 成都国信安信息产业基地有限公司 凯发旗舰的版权所有 凯发k8国际手机app下载 copyright©2002-2017 gxaedu.cn,all rights reserved</p> </div> </footer> <script type="text/javascript" src="/r/cms/www/guoxinan/bjtidu/js/remconversion.js"></script> <script type="text/javascript" src="/r/cms/www/guoxinan/bjtidu/js/parameter.js"></script> <script type="text/javascript" src="/r/cms/www/guoxinan/bjtidu/js/jquery.pagination.min.js"></script> <script> $(function() { $("#pagination2").pagination({ currentpage: 1, totalpage: 2, isshow: false, count: 2, prevpagetext: "< 上一页", nextpagetext: "下一页 >", callback: function(current) { $("#current2").text(current) } }); }); $('.a_star_cont_list').hover(function() { $(this).children('.text').children('.pio').show() }, function() { $(this).children('.text').children('.pio').hide() }) var swiper = new swiper('#detalis_pub', { pagination: { el: '.swiper-pagination', clickable: true, }, }); var swiper = new swiper('#detalis_pub1', { pagination: { el: '.swiper-pagination', clickable: true, }, }); </script> </body> </html>

网站地图