java
aitxiaogang
欢迎大家留言,个人邮箱,aitxiaogang@163.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发情况下加锁和解锁的时机
加锁:多个线程读取同一个数据,后续业务需要对获取到的此数据进行业务的判断,比如唯一性,是否执行过等等业务,再根据判断的结果决定是否执行不同的后续业务流程解锁:可以不用等到方法执行完再解锁,但是,一定要等上面加锁的数据在进行了后续业务之后再解锁。否则。会出现数据不一致的情况比如,判断a用户是否给id为1的数据点赞,点赞了之后就不再保存点赞数据,如果没有,保存点赞数据。那么加锁就是在读取数据库检查用户是否点赞之前加锁,解锁需要等到保存点赞数据或者方法执行结束再解锁。如果在得到用户是否点赞..原创 2021-05-20 15:14:47 · 819 阅读 · 0 评论 -
java接口抽象,业务抽象,功能抽象,抽取功能,方法定义的一点想法
面向接口编程是很好的解耦方式,但是接口的声明要抽象,和具体的业务相剥离,否则接口名称和参数太过具体就无法达到很好的通用性例如在写一个html转换为word文件的功能,或者word转换为html的功能,首先声明接口,如果接口的名称命名为 wordToHtml,或者htmlToWord,那么接口名称就过于具体这项业务再网上抽象就是转换,所以,顶层接口应该声明为transform,而word转h...原创 2020-03-31 15:34:12 · 671 阅读 · 0 评论 -
linux从git拉取代码通过maven构建打包并kill已有的进程和发布java项目脚本
if [ -n "$1" ] ;then echo "the word you input is $1"else echo "请输入要发布的git分支,例如: sh develop_project.sh dev" exitficd /home/cube/workspace/java_project/spap_cardsgit checkou...原创 2019-11-08 17:43:08 · 1205 阅读 · 0 评论 -
srping boot 返回xml 406
在maven中添加依赖<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId></dependency>controller方法上的...原创 2018-12-13 14:48:44 · 664 阅读 · 0 评论 -
spring mvc 无法请求到对应的方法
@RequestMapping这个注解慎用,就是用了,最好标注method = ?否则,如果controller开头的一个方法使用这个注解,只要请求的链接相同,被@RequestMapping标注的方法会拦截同一个链接下的所有请求,其它不同方式的controller方法无法正确跳转过去,比如post请求,delete请求等等...原创 2018-12-14 10:10:02 · 456 阅读 · 0 评论 -
spring boot 环境下websocket 开发简单示例
示例如下,需要注意的是,类上需要打上@Scope("prototype")注解,否则socket就是单例的 socket的configurator属性的配置类需要实现ApplicationContextAware,和代码里面一样的配置之后,server里面才能成功注入spring管理的对象 package com.xiaogang.websocketdemo.web.socket;...原创 2018-12-10 16:04:32 · 511 阅读 · 0 评论 -
java 时间格式化 上午下午 am pm,本地windows显示的格式和linux服务器显示格式,风格不一致问题
本地开发的时候,如果是windows系统,默认为中文环境,所以格式化日期的时候或者其他和语言系统有关系的时候默认就为当前系统的语言环境(中文),在linux服务器上,语言环境很有可能不是中文,如果需要显示对应的语言,需要指定语言环境,或者说指定区域 比如时间格式化 SimpleDateFormat sdf = new SimpleDateFormat(format);Date...原创 2018-12-24 17:43:24 · 4361 阅读 · 0 评论 -
errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint
微信access_token 在一个地方获取了,同一个公众号其它地方获取的access_token 都会失效,就会出现标题中的错误 这个原因可能大家都知道,但是排除的时候可能不好排除 我找了一上午在系统里面,都没有找到,因为自己负责的系统全都在一个地方定时获取access_token ,都在去同一个地方获取,不再是所有地方请求微信获取 然而今天又出现这个问题,是因为公司里面...原创 2019-01-30 17:02:50 · 6194 阅读 · 0 评论 -
java.lang.IllegalMonitorStateException的解决方法
java.lang.IllegalMonitorStateException是在调用object的wait和notify,notifyAll方法的时候可能会出现的异常 在调用上述三个方法的时候,线程必须获得该对象的对象级别锁,换句话说,出现这个异常的原因是因为,调用wait和notify,notifyAll的对象没有在同步方法(synchronized修饰的方法)或者同步代码块(synch...原创 2019-02-21 10:42:37 · 13286 阅读 · 2 评论 -
java多线程情况下,while和if的区别
在多线程情况下,如果一个线程进入了if语句块中,在if语句块中执行了wait方法,该线程处于等待(wait)状态,如果该线程被唤醒(notify),不管if的条件是否发生了变化,该线程会执行wait之后的代码,并且会跳出if语句块执行if语句块外面的代码 如果是while,被唤醒了之后,会继续执行wait方法之后的代码,代码块里面的代码执行完了会继续判断条件,如果为true,会继续执行wh...原创 2019-02-21 10:58:00 · 3121 阅读 · 5 评论 -
RocketMQ-记RocketMQ启动后producer无法连接到broker的错误及解决方案
背景最近在学习RocketMQ,第一步就是安装部署并启动RocketMQ.使用最新版本的RocketMQ,版本为4.2.0,安装后启动相关服务.启动nameServer:nohup mqnamesrv &1由于broker和nameServer在同一台机器上,启动broker:nohup mqbroker -n localhost:9876 &1接下来运行pr...转载 2019-05-12 09:35:03 · 4907 阅读 · 1 评论 -
Srping boot ConfigurationProperties 添加 list 元素配置
java代码application.yml配置需要注意的就是在属性的后面直接回车,比属性要多出两个空格然后加“-”然后加一个空格接上元素就可以了,添加其它元素的时候再回车,格式和刚才一样就可以了...原创 2019-08-30 17:42:48 · 1115 阅读 · 0 评论 -
jenkins gogs 通过git部署 遇到的问题 fatal: could not read Username for 'http://47.92.55.118:3000': No such d
jenkins gogs 通过git部署 遇到的问题 fatal: could not read Username for 'http://47.92.55.118:3000': No such d 遇到这个错,网上找了一圈也没有找到方法,最后在服务器执行了git pull命令之后,提示需要输入用户名密码,在服务器执行成功了之后,在jenkins上就可以执行此命令了 ...原创 2018-11-02 12:25:45 · 10752 阅读 · 0 评论 -
java 生产服务器无法收到header请求头参数或者ip
部署应用到生产服务器,因为对真正的接口服务器做了代理转发,导致接口无法收到header参数,因为nginx在代理转发之后没有将header转发过去,解决方法就是,在http节点下,添加如下配置 underscores_in_headers on;...原创 2018-09-30 15:53:22 · 2049 阅读 · 0 评论 -
使用Spring AOP的一个小细节
如果切入点代理的实现类需要在spring的配置文件中加上也就是Proxy和Enhancer的区别原创 2017-12-19 17:50:38 · 154 阅读 · 0 评论 -
jenkins重新安装
重装只需要删除安装jenkins用户的主目录(~)下的(.jenkins)文件夹,然后重启,就可以重新配置jenkins原创 2017-12-15 14:30:13 · 8467 阅读 · 0 评论 -
interface的作用,什么情景下适合使用接口interface?
这个问题在我刚工作的时候也想过,没有被需求折磨的时候,真的觉得interface好像没啥用,现在做的需求多了,改的需求多了,你走的冤枉路也就多了,很多时候改需求改疯了你就会想,要怎么做才能让自己做的功能适应各种复杂情况,慢慢的就体会到了interface的作用interface最大的作用就是它代表了一种约定,规范举个例子,如果不适用interface,那么你原创 2017-12-07 10:21:41 · 2935 阅读 · 0 评论 -
java通过代理使用redis,redis自动关闭连接,释放资源
java使用redis一般都是通过redis.clients.jedis.Jedis来连接redis服务器,通过redis.clients.jedis.Jedis提供的方法使用redis但是每次执行完jedis里面的方法之后必须关闭链接,释放资源,否则链接一旦用完下次再使用redis程序会堵塞,但是手动关闭链接或出现很多的重复代码,并且有些时候也会忘记关闭解决方法就原创 2017-12-17 20:17:02 · 12374 阅读 · 3 评论 -
java原生数据队列的简单使用,可变数据集合,遍历过程中动态添加数据并能在后续遍历过程中获取
@Test public void testLink(){ LinkedList queue = new LinkedList(); queue.add(1); queue.add(2); queue.add(3); boolean f = true; Object o; whi原创 2017-12-18 10:42:44 · 931 阅读 · 0 评论 -
spring boot 项目发布到外部tomcat的关键步骤
1:修改pom的打包方式为war,修改pom的打包方式为war,修改pom的打包方式为war2:程序入口类继承SpringBootServletInitializer3:main方法里面添加new SpringApplicationBuilder().web(true).sources(App.class);4:pom添加 org.apache.t原创 2018-01-22 15:00:24 · 245 阅读 · 0 评论 -
spring boot创建测试
@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class AppTest extends TestCase{ @Autowired private ProductRepository productRepository; @Test public void testRepo(){原创 2018-01-22 16:44:00 · 295 阅读 · 0 评论 -
spring mvc加入swagger的步骤
pom加入swagger的依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.0</version&原创 2018-05-05 01:19:38 · 655 阅读 · 0 评论 -
springmvc 接口使用标签,配合swagger方便输出接口信息
@RestController@Api(description = "商品接口")public class ProductController { @GetMapping(value = "productList") @ApiOperation(value = "商品列表接口",notes = "没有什么特别的说明") //paramType 有五个可选值 : pat...原创 2018-05-05 01:21:06 · 246 阅读 · 0 评论 -
jenkins + gogs 搭建git部署环境遇到的问题
在gogs上创建git仓库的时候,不能选择“私有仓库”选项,否则jenkins无法检出文件原创 2018-06-08 21:36:12 · 1297 阅读 · 0 评论 -
spring boot 注册到eureka中,端口号始终为默认的8080,导致服务无法调用
我出现这种情况的原因是因为加入的swagger,swagger的版本和spring cloud有冲突,但是启动的时候没有任何提示,所以很长时间没有搞懂为什么端口号不是自己再配置文件中指定的端口号...原创 2018-07-09 14:09:01 · 8472 阅读 · 5 评论 -
java 工作日日期计算
public class DateUtil { private static SimpleDateFormat hm = new SimpleDateFormat("HH:mm"); private static SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd"); private static Simpl...原创 2018-07-25 09:49:35 · 1412 阅读 · 0 评论 -
java 工作日,工作时间内的时间增量计算
/** * @author xiaogang * @date 2018/7/19 18:01 */public class DateUtil { private static SimpleDateFormat hm = new SimpleDateFormat("HH:mm"); private static SimpleDateFormat ymd = new Sim...原创 2018-07-20 16:08:38 · 2121 阅读 · 1 评论 -
java 生成二维码图片
import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.common.BitMa...原创 2018-08-01 00:47:36 · 176 阅读 · 0 评论 -
使用Spring AOP应该注意的一个小细节
如果切入点切入的是实现类需要在spring的配置文件中加上标签,代表代理的实现类而非基于接口代理也就是Proxy和Enhancer的区别原创 2017-12-19 17:48:56 · 391 阅读 · 0 评论
分享