1 Spring 值注解--@Value 中${} 和 #{}区别:
${} 是引用外部参数对应的property
#{}是SPEL表达式,内部表达式可以直接引用spring IoC管理的对象的属性
2 Mybatis 动态sql ${} 和 #{}的区别:
mybatis 对sql进行预编译之前会先进行动态解析,解析为一个BoundSql对象(动态解析)
#{}会被解析为 参数标记符号 ?;
${}会直接将传入的参数作为String字符串替换;
${} 代价:
无法防止sql注入;
${} 优势:
一般传入的是数据库对象,如表;
#{}优势:
很大程度上可以防止sql注入;