网站建设课设心得体会seo工作内容和薪资

张小明 2026/1/14 22:43:23
网站建设课设心得体会,seo工作内容和薪资,湖南长沙新增病例最新消息,响应式网站技术SpEL表达式#xff08;Spring Expression Language#xff09;详解 SpEL#xff08;Spring Expression Language#xff09;是Spring框架提供的一种强大的表达式语言#xff0c;用于在运行时查询和操作对象图#xff0c;支持字面量、运算符、方法调用、属性访问、正则匹配…SpEL表达式Spring Expression Language详解SpELSpring Expression Language是Spring框架提供的一种强大的表达式语言用于在运行时查询和操作对象图支持字面量、运算符、方法调用、属性访问、正则匹配、集合操作等可独立使用或集成到Spring框架如注解、XML配置、Bean定义中。一、核心特点动态求值运行时解析表达式而非编译期跨场景使用支持XML配置、注解如Value、编程式调用丰富的语法涵盖字面量、运算符、类型转换、集合操作、Bean引用等与Spring无缝集成可直接访问Spring容器中的Bean、环境变量、系统属性等。二、基本语法与常用场景1. 字面量表达式支持字符串、数字、布尔、null等基础类型的直接表达// 编程式调用示例核心类ExpressionParser、SpelExpressionParser、EvaluationContextExpressionParserparsernewSpelExpressionParser();// 字符串单引号包裹Expressionexp1parser.parseExpression(Hello SpEL);Stringstr(String)exp1.getValue();// 结果Hello SpEL// 数字Expressionexp2parser.parseExpression(100 200 * 2);intnum(Integer)exp2.getValue();// 结果500// 布尔Expressionexp3parser.parseExpression(true false);booleanbool(Boolean)exp3.getValue();// 结果false// nullExpressionexp4parser.parseExpression(null);ObjectnullObjexp4.getValue();// 结果null2. 属性与方法调用通过.访问对象属性/方法支持嵌套访问// 定义测试对象classUser{privateStringname;privateListStringhobbies;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicListStringgetHobbies(){returnhobbies;}publicvoidsetHobbies(ListStringhobbies){this.hobbieshobbies;}publicStringsayHello(Stringmsg){returnHello: msg;}}// 初始化上下文UserusernewUser();user.setName(张三);user.setHobbies(Arrays.asList(篮球,读书));EvaluationContextcontextnewStandardEvaluationContext(user);// 访问属性Stringname(String)parser.parseExpression(name).getValue(context);// 张三// 调用方法带参数Stringhello(String)parser.parseExpression(sayHello(SpEL)).getValue(context);// Hello: SpEL// 嵌套访问集合属性Stringhobby(String)parser.parseExpression(hobbies[0]).getValue(context);// 篮球3. 运算符支持算术、逻辑、关系、赋值、三元运算符等类型运算符示例说明算术10 2、3 * 4、10 % 3加减乘除、取模逻辑true关系5 3、abc abc大于、等于、不等于等赋值name 李四为属性赋值三元运算name 张三 ? 是 : 否条件判断Elvis运算符name ?: 默认值简化空判断name为空则返回默认值示例// 三元运算Stringresult(String)parser.parseExpression(name 张三 ? 管理员 : 普通用户).getValue(context);// 管理员// Elvis运算符空保护parser.parseExpression(name null).getValue(context);StringdefaultName(String)parser.parseExpression(name ?: 未知用户).getValue(context);// 未知用户4. 集合操作支持访问集合元素、筛选、投影等// 1. 访问List/MapListIntegernumsArrays.asList(1,2,3,4);EvaluationContextlistContextnewStandardEvaluationContext(nums);intfirst(Integer)parser.parseExpression([0]).getValue(listContext);// 1MapString,IntegermapnewHashMap();map.put(a,10);map.put(b,20);EvaluationContextmapContextnewStandardEvaluationContext(map);intval(Integer)parser.parseExpression([b]).getValue(mapContext);// 20// 2. 集合筛选.?[表达式]ListIntegerevenNums(ListInteger)parser.parseExpression(.?[#this % 2 0]).getValue(listContext);// [2,4]// 3. 集合投影.![表达式]ListStringstrNums(ListString)parser.parseExpression(.![#this 号]).getValue(listContext);// [1号,2号,3号,4号]5. Spring容器集成1引用Spring Bean符号在Spring环境中可直接引用容器中的Bean// 假设容器中有一个名为userService的BeanValue(#{userService})privateUserServiceuserService;// 调用Bean的方法Value(#{userService.getUserName(1)})privateStringuserName;2访问环境变量/系统属性// 系统属性systemPropertiesValue(#{systemProperties[os.name]})privateStringosName;// 例如Windows 10// 环境变量environmentValue(#{environment[JAVA_HOME]})privateStringjavaHome;// Spring配置属性application.propertiesValue(#{my.properties[app.name]})privateStringappName;6. 注解中的常用场景1Value注解区别${}是占位符#{}是SpEL// 基础值Value(#{100 * 2})privateintnum;// 200// 空判断Value(#{user.name ?: 默认名称})privateStringuserName;// 集合Value(#{T(java.util.Arrays).asList(a,b,c)})privateListStringletters;2PreAuthorizeSpring Security权限控制// 权限表达式判断用户是否有指定角色PreAuthorize(#userId authentication.principal.id or hasRole(ADMIN))publicvoiddeleteUser(LonguserId){// 业务逻辑}三、编程式使用SpEL的完整示例importorg.springframework.expression.Expression;importorg.springframework.expression.ExpressionParser;importorg.springframework.expression.spel.standard.SpelExpressionParser;importorg.springframework.expression.spel.support.StandardEvaluationContext;publicclassSpELDemo{publicstaticvoidmain(String[]args){// 1. 创建表达式解析器ExpressionParserparsernewSpelExpressionParser();// 2. 定义上下文绑定对象UserusernewUser();user.setName(李四);user.setAge(25);StandardEvaluationContextcontextnewStandardEvaluationContext(user);// 3. 解析表达式// 访问属性Stringname(String)parser.parseExpression(name).getValue(context);System.out.println(姓名name);// 李四// 运算 赋值parser.parseExpression(age age 1).getValue(context);intage(Integer)parser.parseExpression(age).getValue(context);System.out.println(年龄age);// 26// 方法调用Stringgreet(String)parser.parseExpression(sayHello(SpEL)).getValue(context);System.out.println(greet);// Hello: SpEL}staticclassUser{privateStringname;privateintage;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.ageage;}publicStringsayHello(Stringmsg){returnHello: msg;}}}四、注意事项性能SpEL运行时解析高频调用场景需缓存解析后的Expression对象安全避免解析用户输入的表达式防止注入攻击区别${}与#{}${}Spring占位符仅做字符串替换先解析#{}SpEL表达式支持动态求值后解析混合使用Value(${app.name:#{systemProperties[user.name]}})占位符默认值用SpEL类型转换SpEL内置类型转换器可自定义TypeConverter扩展。五、核心API总结类/接口作用ExpressionParser表达式解析器核心接口SpelExpressionParserExpressionParser的默认实现EvaluationContext表达式求值上下文绑定变量、Bean等StandardEvaluationContextEvaluationContext的默认实现Expression解析后的表达式对象可多次求值SpEL是Spring生态中灵活的动态表达式工具核心场景包括配置注入、权限控制、动态规则判断等掌握其语法可大幅提升Spring开发的灵活性。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人备案的网站可以做商城济南网站建设sdjy6

中国矿业大学LaTeX模板终极指南:轻松搞定毕业设计格式规范 【免费下载链接】cumtthesis 项目地址: https://gitcode.com/gh_mirrors/cu/cumtthesis 还在为毕业设计的格式要求头疼吗?面对复杂的页边距、行间距、字体字号等格式规范,你…

张小明 2026/1/7 19:48:59 网站建设

响应式做的好的网站vi设计模板源文件

游戏DLC解锁神器:三分钟掌握全平台付费内容免费体验技巧 【免费下载链接】CreamApi 项目地址: https://gitcode.com/gh_mirrors/cr/CreamApi 还在为昂贵的游戏DLC发愁吗?想体验完整游戏内容却不想花冤枉钱?这款游戏DLC解锁工具正是你…

张小明 2026/1/7 19:48:58 网站建设

多语言网站建设方案做网站赚钱有哪些途径

摘要:意大利认知人形机器人企业 Oversonic Robotics 与半导体巨头意法半导体(STMicroelectronics)达成供应协议,定制化 RoBee 认知人形机器人将落地意法全球多家工厂的生产与物流环节。作为半导体行业首次整合认知人形机器人&…

张小明 2026/1/7 19:49:00 网站建设

中国物流网官方网站WordPress主题怎么翻译

3大策略彻底解决deck.gl与Mapbox视觉冲突:从业务场景到技术实现 【免费下载链接】deck.gl WebGL2 powered visualization framework 项目地址: https://gitcode.com/GitHub_Trending/de/deck.gl 当你在智慧城市项目中尝试将实时交通数据叠加到3D建筑模型上时…

张小明 2026/1/7 20:06:11 网站建设

做卡贴和果冻贴的网站招聘设计师去哪个网站

Anything-LLM:构建可信、高效的私有化智能知识系统 在企业知识管理正经历深刻变革的今天,一个普遍存在的困境是:信息越来越多,但“知道在哪里”却越来越难。员工翻遍邮件、共享盘和聊天记录仍找不到一份关键制度文档;…

张小明 2026/1/7 19:49:02 网站建设

企智网络网站建设公司哪块行业需要网站建设

第一章:Prompt还能这样改?Open-AutoGLM的3大隐秘操作,90%人不知道动态上下文注入 在使用 Open-AutoGLM 时,大多数用户仅将 Prompt 视为静态输入,但高级用法支持运行时动态注入上下文。通过预定义占位符并结合运行时变量…

张小明 2026/1/7 19:49:00 网站建设