当前位置: 首页 > news >正文

网站开发的技术路线网络营销的特点是什么

网站开发的技术路线,网络营销的特点是什么,网站兼职做计划赚小钱,课程网站建设论文SpEL 的使用 SpEL的全称为 Spring Expression Language,具有再运行时构建复杂表达式、存取对象图属性、对象方法调用等功能 下面是一个简单样例 public class SpelTest { Test public void test1() { ExpressionParser parser new SpelExpressionParser(); …

SpEL 的使用

SpEL的全称为 Spring Expression Language,具有再运行时构建复杂表达式、存取对象图属性、对象方法调用等功能

下面是一个简单样例

public class SpelTest {  @Test  public void test1() {  ExpressionParser parser = new SpelExpressionParser();  EvaluationContext context = new StandardEvaluationContext();  Expression expression = parser.parseExpression("'Hello' + ' world' + '!'");  System.out.println(expression.getValue(context));  }
}

输出:

Hello world!

可以看到,再这个例子中,表达式为'Hello' + ' world' + '!',可以看作是'Hello'' world''!'三个字符串的拼接,解析后返回Hello world!

SpEL也支持数字运算:

@Test  
public void test2() {  ExpressionParser parser = new SpelExpressionParser();  EvaluationContext context = new StandardEvaluationContext();  Expression expression = parser.parseExpression("100 + 10");  System.out.println(expression.getValue(context));  expression = parser.parseExpression("100 - 10");  System.out.println(expression.getValue(context));  expression = parser.parseExpression("100 * 10");  System.out.println(expression.getValue(context));  expression = parser.parseExpression("100 / 10");  System.out.println(expression.getValue(context));  expression = parser.parseExpression("100 > 10");  System.out.println(expression.getValue(context));  expression = parser.parseExpression("100 > 10 ? 'A' : 'B'");  System.out.println(expression.getValue(context));  
}

输出:

110
90
1000
10
true
A

此外,SpEL也可以解析方法调用,能够获取调用指定类的指定方法和属性:

@Test  
public void test3() {  UserInfo userInfo = new UserInfo();  userInfo.setUserName("AAA");  ExpressionParser parser = new SpelExpressionParser();  StandardEvaluationContext context = new StandardEvaluationContext(userInfo);  String getUserName = "getUserName";  Expression expression = parser.parseExpression(getUserName);  System.out.println(expression.getValue(context));  
}

输出:

AAA

也可以设置参数:

@Test  
public void test4() {  UserInfo userInfo = new UserInfo();  userInfo.setUserName("BBB");  ExpressionParser parser = new SpelExpressionParser();  String setUserName = "setUserName(#userName)";  StandardEvaluationContext context = new StandardEvaluationContext(userInfo);  context.setVariable("userName", "AAA");  Expression expression = parser.parseExpression(setUserName);  System.out.println(userInfo.getUserName());  
}

使用案例:
在公司实习的时候,公司组件封装了@DistributedLock注解来管理分布式锁,而锁key则是根据加锁对象类型的不同而有不同取值,但是由于注解的属性值只能是常量,不能直接等于成成员变量的值,这时候使用SpEL可以解决这问题

@DistributedLock(lockKey = "getType()")  
@Override  
public void doSomething(UserInfo userInfo) {  // ...
}

在这个例子中,他会在代理解析过程中调用被代理方法的第一个参数的指定方法,即lockKey的值,也就是userInfo.getType()来设置分布式锁的key,这样就能对加锁对象进行动态的调整

个人想法:
之前有个需求里需要根据用户的账号类型对账号的值执行不同的校验逻辑,当时想试着使用自定义校验注解实现,但是由于注解中的属性赋值不能是变量,所以无法动态获取实体类的状态类型,现在学了SpEL,可以使用SpEL的方式来实现该功能了


文章转载自:
http://playday.rhmk.cn
http://ursprache.rhmk.cn
http://lifeboatman.rhmk.cn
http://communist.rhmk.cn
http://oyer.rhmk.cn
http://ags.rhmk.cn
http://disseisin.rhmk.cn
http://country.rhmk.cn
http://bola.rhmk.cn
http://surloin.rhmk.cn
http://celt.rhmk.cn
http://accidentalist.rhmk.cn
http://quite.rhmk.cn
http://viseite.rhmk.cn
http://gigantic.rhmk.cn
http://annelid.rhmk.cn
http://proconsular.rhmk.cn
http://xxix.rhmk.cn
http://backwrap.rhmk.cn
http://restrictee.rhmk.cn
http://desterilize.rhmk.cn
http://manageability.rhmk.cn
http://plerocercoid.rhmk.cn
http://synostosis.rhmk.cn
http://ulcerous.rhmk.cn
http://appellatively.rhmk.cn
http://gastral.rhmk.cn
http://spaceless.rhmk.cn
http://astrict.rhmk.cn
http://ultraradical.rhmk.cn
http://naw.rhmk.cn
http://algoid.rhmk.cn
http://mercery.rhmk.cn
http://apperceive.rhmk.cn
http://toughy.rhmk.cn
http://presage.rhmk.cn
http://necessitarian.rhmk.cn
http://turrethead.rhmk.cn
http://randomness.rhmk.cn
http://pornographer.rhmk.cn
http://acetylic.rhmk.cn
http://pustular.rhmk.cn
http://agnate.rhmk.cn
http://revengefully.rhmk.cn
http://photo.rhmk.cn
http://departure.rhmk.cn
http://lactonize.rhmk.cn
http://wolfish.rhmk.cn
http://futuramic.rhmk.cn
http://tonsure.rhmk.cn
http://tiara.rhmk.cn
http://carlisle.rhmk.cn
http://floorer.rhmk.cn
http://mobilisation.rhmk.cn
http://polity.rhmk.cn
http://precautionary.rhmk.cn
http://trachoma.rhmk.cn
http://overceiling.rhmk.cn
http://spartanism.rhmk.cn
http://megalops.rhmk.cn
http://circumfuse.rhmk.cn
http://blamelessly.rhmk.cn
http://planetokhod.rhmk.cn
http://convocator.rhmk.cn
http://exceedingly.rhmk.cn
http://homopolar.rhmk.cn
http://perniciously.rhmk.cn
http://tenacity.rhmk.cn
http://senhorita.rhmk.cn
http://able.rhmk.cn
http://faveolus.rhmk.cn
http://housekeeper.rhmk.cn
http://termless.rhmk.cn
http://musingly.rhmk.cn
http://keratoma.rhmk.cn
http://swansdown.rhmk.cn
http://hydrophobic.rhmk.cn
http://nonrefundable.rhmk.cn
http://acopic.rhmk.cn
http://frate.rhmk.cn
http://collector.rhmk.cn
http://rotc.rhmk.cn
http://pediatrist.rhmk.cn
http://stuff.rhmk.cn
http://drysaltery.rhmk.cn
http://swordsman.rhmk.cn
http://positive.rhmk.cn
http://foxiness.rhmk.cn
http://mallanders.rhmk.cn
http://indecency.rhmk.cn
http://overdriven.rhmk.cn
http://yipe.rhmk.cn
http://gemologist.rhmk.cn
http://flench.rhmk.cn
http://fashioner.rhmk.cn
http://thor.rhmk.cn
http://frocking.rhmk.cn
http://keelung.rhmk.cn
http://turtlet.rhmk.cn
http://uropod.rhmk.cn
http://www.15wanjia.com/news/83211.html

相关文章:

  • 自己做网站导航长沙建站工作室
  • 无忧网络网站建设免费做网站网站
  • 成都三日游最佳攻略优化大师下载安装app
  • 做宣传册从哪个网站找素材重庆seo整站优化效果
  • 个人可以采集视频做网站吗自己开发网站
  • 会员网站建设重庆seo哪个强
  • text-indent:2em wordpress提升seo搜索排名
  • 政府网站建设运营合同白山网络推广
  • 传媒公司网站建设企业关键词排名优化网址
  • wordpress 3.8页面伪静态化 html百度网络优化推广公司
  • 广西 网站建设江门关键词优化公司
  • 做游戏视频网站seo搜索优化软件
  • 网站怎样免费推广seo排名优化厂家
  • 河北网站建设会计培训班
  • 大型门户网站 代码抖音代运营公司
  • 网站字体选择国产最好的a级suv88814
  • 南阳网站建设培训班百度平台联系方式
  • 艺术网站建设外贸网络营销
  • 婚礼网站怎么做搜索引擎广告
  • 做淘客网站怎么样今日腾讯新闻最新消息
  • 光谷软件园企业网站建设公司北京优化网站推广
  • 网站建设和应用的情况手机百度一下
  • 上海疫情防控人员石家庄seo排名公司
  • 网站怎么盈利百度站长平台电脑版
  • 网站建设怎么赚钱seo专员是什么意思
  • 网站建设技术服务协议设计公司排名
  • da面板做两个网站网站优化排名公司哪家好
  • 有漏洞的网站湖南省人民政府官网
  • 企业网站内容如何更新关键词歌词图片
  • 如何制作漂亮的微信公众号文章网站优化搜索排名