2018年10月工作中遇到的问题
1、知识点:Spring Cloud
对象 RestTemplate:该对象会使用 Ribbon 的自动化配置,同时通过配置@LoadBalanced还能够开启客户端负载均衡。
2、RestTemplate 针对几种不同请求类型和参数类型
GET请求
第一种: getForEntity 函数:
第二种: getForObject 函数:
POST请求
第一种: postForEntity 函数:
第二种: postForObject 函数
第三种: postForLoca巨on函数。 该方法实现了以POST请求提交资源, 并返回新资源的URI
3、详细设计阶段用到了哪些图形工具?
程序流程图(PFD)
盒图(N-S 图)
问题分析图(PAD)
判定表/判定树(其他非图形工具有过程设计语言(PDL)
4、input 输入 小写转大写 遇到坑
①、<input type="text" id="txt1" value="" style="text-transform:uppercase"/>这种方式开起来转成大写了,实际上,在取值的时候还是小写。
②、解决办法:
法一:适配所有input框
法二:
5、数值的计算
①、BigDecimal类的加减乘除
public BigDecimal(double val);//将double表示形式转换为BigDecimal
public BigDecimal(int val);//将int表示形式转换为BigDecimal
public BigDecimal(String val);//将字符串表示形式转换为BigDecimal
public BigDecimal add(BigDecimal augend);//加法
public BigDecimal subtract(BigDecimal subtrahend);//减法
public BigDecimal multiply(BigDecimal multiplicand);//乘法
public BigDecimal divide(BigDecimal divisor);//除法
②、比较大小
BigDecimal a = new BigDecimal("1.00");
BigDecmial b = new BigDecimal(1);
想比较一下a和b的大小,一般都会用equals
System.out.println(a.equals(b));
但是输出结果是:false
原因是:BigDecimal比较时,不仅比较值,而且还比较精度?
if(a.compareTo(b)==0) 结果是true
比较大小可以用 a.compareTo(b)
返回值 -1 小于 0 等于 1 大于
③、保留小数据点位数
MySQL锁表:select for update
是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性.
select * from t for update 会等待行锁释放之后,返回查询结果。
select * from t for update nowait 不等待行锁释放,提示锁冲突,不返回结果
select * from t for update wait 5 等待5秒,若行锁仍未释放,则提示锁冲突,不返回结果
select * from t for update skip locked 查询返回查询结果,但忽略有行锁的记录
SELECT...FOR UPDATE 语句的语法如下:
SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];
其中:
OF 子句用于指定即将更新的列,即锁定行上的特定列。
WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。
“使用FOR UPDATE WAIT”子句的优点如下:
1防止无限期地等待被锁定的行;
2允许应用程序中对锁的等待时间进行更多的控制。
3对于交互式应用程序非常有用,因为这些用户不能等待不确定
4 若使用了skip locked,则可以越过锁定的行,不会报告由wait n 引发的‘资源忙’异常报告
**:开启事务之后锁表,等事务结束之后锁表自动被释放
JSP-导入taglib 出现classNotFound异常:
java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
案例
前端登录跳转到指定jsp,报classNoFoundException,原因是页面导入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 导致的
-
Caused by: java.lang.ClassNotFoundException:
-
-
org.apache.jsp.WEB_002dINF.jsp.common.index_005fmenu_jsp
-
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
-
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
-
-
at java.security.AccessController.doPrivileged(Native Method)
-
-
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
-
-
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
-
-
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
-
-
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:121)
-
-
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
-
-
... 52 more
在pom.xml添加如下配置发现也没效果
-
<dependency>
-
<groupId>javax.servlet.jsp.jstl</groupId>
-
<artifactId>jstl-api</artifactId>
-
<version>1.2</version>
-
</dependency>
解决方案
经网上搜索,是缺少jstl相关包的问题,刚才我们只是导入了jstl-api,而没有导入jstl的实现,所以再导入jstl 的实现。去mvnrepository上找jstl 的实现,基本上有两个版本,一个是glassfish 的jstl-impl, 另一个是apache的taglibs-standard-impl,一直犹豫不决该用谁,最后在stackoverflow.com/a/25374024/1443527上发现网友分享了他实现的经验,他用的是glassfish版本,所以我们也引人这个。由于tomcat7是兼容j2ee 3.0规范的,所以我们将jstl 依赖的东西给去除掉,防止和tomcat自身的servlet jar包冲突,改正后的依赖为
-
<dependency>
-
<groupId>javax.servlet.jsp.jstl</groupId>
-
<artifactId>jstl-api</artifactId>
-
<version>1.2</version>
-
<exclusions>
-
<exclusion>
-
<groupId>javax.servlet</groupId>
-
<artifactId>servlet-api</artifactId>
-
</exclusion>
-
<exclusion>
-
<groupId>javax.servlet.jsp</groupId>
-
<artifactId>jsp-api</artifactId>
-
</exclusion>
-
</exclusions>
-
</dependency>
-
-
<dependency>
-
<groupId>org.glassfish.web</groupId>
-
<artifactId>jstl-impl</artifactId>
-
<version>1.2</version>
-
<exclusions>
-
<exclusion>
-
<groupId>javax.servlet</groupId>
-
<artifactId>servlet-api</artifactId>
-
</exclusion>
-
<exclusion>
-
<groupId>javax.servlet.jsp</groupId>
-
<artifactId>jsp-api</artifactId>
-
</exclusion>
-
<exclusion>
-
<groupId>javax.servlet.jsp.jstl</groupId>
-
<artifactId>jstl-api</artifactId>
-
</exclusion>
-
</exclusions>
-
</dependency>
顺便说一下jstl-impl-1.2.jar 和taglibs-standard-impl-1.2.1.jar 的区别,这两个包的内容很相似,后者应该是前者的一个再打包,因为Apache的taglibs工程从2009年以后一直处于停止状态。
如果你要引人后者,那么依赖应该为:
-
<dependency>
-
<groupId>org.apache.taglibs</groupId>
-
<artifactId>taglibs-standard-spec</artifactId>
-
<version>1.2.1</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.apache.taglibs</groupId>
-
<artifactId>taglibs-standard-impl</artifactId>
-
<version>1.2.1</version>
-
</dependency>
文章来源: blog.csdn.net,作者:轻狂书生FS,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/LookForDream_/article/details/84567362
- 点赞
- 收藏
- 关注作者
评论(0)