需要添加spring-text.RELEASE.jar。
需要添加Junit4的2个jar包:junit.jar、hamcrest-core.jar。
写Junit的注解,Alt+Enter添加即可。
也可以自己下载添加:https://github.com/junit-team/
刚在写一个用例,需要在方法中改变传递的参数的值,可是java中只有传值调用,没有传址调用。所以在java方法中改变参数的值是行不通的。但是可以改变引用变量的属性值。
可以仔细理解一下下面几句话:
1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。
2、对于引用类型
List 转 JSONArray
// 通过JSONPath获取其中数据,也可以说自己生成的List
List<JSONObject> caseList = JsonPath.read(resStr, "$.result.case");
// 转换为JSONArray
String str = "{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"}";
//第一种方式
Map maps = (Map)JSON.parse(str);
System.out.println("这个是用JSON
1、//将map转换成jsonObject
JSONObject itemJSONObj = JSONObject.parseObject(JSON.toJSONString(itemMap));
将Map类型的itemInfo转换成json,再经JSONObject转换实现。
2
Java中的集合
集合就像是一个购物车,可以将购买的所有商品的存放在一个统一的购物车中
集合的概念
现实生活: 很多的事物凑在一起
数学中的集合: 具有共同属性的事物的总体
Java中的集合类: 是一种工具类,是一种容器,里面可以存储任意数量的相同属性的类。
集合的作用
在类的内部
软件下载及配置
软件下载
mvn需要jdk的支持,jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
官方下载地址:http://maven.apache.
Spring提供了2种事务管理
编程式的
声明式的(重点):包括xml方式、注解方式(推荐)
基于转账的demo
dao层
新建包com.chy.dao,包下新建接口AccountDao、实现类AccountDaoImpl:
public interface Acco
String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
如果要操作一个不断增长的字符串,尽量不用String类,改用StringB
openSession
getCurrentSession
Hibernate有两种方式获得session,分别是: openSession和getCurrentSession他们的区别在于1. 获取的是否是同一个session对象 openSession每次都会得到一个新的Sessi
昨天简单的看了看Unsafe的使用,今天我们看看JUC中的原子类是怎么使用Unsafe的,以及分析一下其中的原理!
一.简单使用AtomicLong
还记的上一篇博客中我们使用了volatile关键字修饰了一个int类型的变量,然后两个线程,分别对这个变量进行10000次+1操
大体流程:
1、浏览器向web服务器发送HTTP请求
2、DispatcherServlet拦截所有请求,将请求地址(url)传给HandlerMapping
3、HandlerMapping根据url-controller之间的映射关系,确定要调用的controll
Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观,全面的身份验证,授权,加密和会话管理解决方案。下面是在SpringBoot中使用Shiro进行认证和授权的例子,代码如下:
pom.xml
导入SpringBoot和Shiro依赖:
<d
有如下两个切点:
@Pointcut("execution(public * com.wyh.data.controller.DepartmentController.*(..))")
public void department(){}
@Pointcut("execution(publ
问题场景
场景很简单,就是一个正常 axios post 请求:
axios({
headers: {
'deviceCode': 'A95ZEF1-47B5-AC90BF3'
},
method: 'post',
url: '/api/lo
简要原理:
1)DataSourceEnum列出所有的数据源的key---key
2)DataSourceHolder是一个线程安全的DataSourceEnum容器,并提供了向其中设置和获取DataSourceEnum的方法
3)DynamicDataSource继承AbstractRo
HandlerMapping 处理器映射
HTTP请求被DispatcherServlet拦截后,会调用HandlerMapping来处理,HandlerMapping根据 url<=>controller 之间的映射关系来确定要调用哪个controller来处理。
当使用 RestTemplate 可能会遇到异常:
Not enough variables available to expand
典型如下:
@Autowired
private RestTemplate restTemplate;
String url = "http://loca
结论
post方法中如果使用map传参,需要使用MultiValueMap来传递
RestTemplate 的 postForObject 方法有四个参数
String url => 顾名思义 这个参数是请求的url路径
Object request => 请求的body 这个
错误
no suitable HttpMessageConverter found for response type and content type [text/html;charset=UTF-8]
这边调用的时候使用了RestTemplate
使用过程
RestTemplate