
java
apr_su
这个作者很懒,什么都没留下…
展开
-
版本1-7之软件设计原则的理解
高内聚、低耦合 一个软件系统要有一个稳定的架构,不会随着需要的改变在发生巨大的变动。因此,高内聚、低耦合是一个软件系统设计中必须遵循的基本原则。 高内聚,是指一个软件模块内各个元素彼此结合的紧密程度要高,即一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。 低耦合,是指一个软件系统内不同模块之间的互连程度要低。不同模块之间的联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性、调用的方式及传递的信息。 因此,在一个软件系统中,原创 2020-08-04 21:34:08 · 318 阅读 · 0 评论 -
@Slf4j使用
springboot项目和spring的项目的使用有点不同。springboot把一些依赖自动引入了,而spring的项目需要多引几个依赖,不然使用时会报错springboot<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId&原创 2020-07-26 21:33:16 · 389 阅读 · 1 评论 -
springboot整合redis
@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{ @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private原创 2020-06-30 21:32:17 · 251 阅读 · 2 评论 -
解决问题:jar中没有主清单属性
pom.xml文件中添加:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configurat原创 2020-06-30 21:28:28 · 672 阅读 · 0 评论 -
springboot整合rabbitmq(direct模式)
POM文件<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <version>2.0.6.RELEASE</version></dependency>yml文件spring: rabbitmq: host:原创 2020-05-29 19:00:19 · 709 阅读 · 0 评论 -
RabbitMQ安装—mkdir: 无法创建目录"/var/run/rabbitmq": 权限不够
yum源安装rabbitmq之后,启动报错查看日志vim /var/log/rabbitmq/startup_err错误信息:mkdir: 无法创建目录"/var/run/rabbitmq": 权限不够解决:ln -s /usr/local/bin/erl /usr/bin/erl其中,第一个路径为erl的安装位置。erl的安装路径确定,根据erlang源码安装时的配置。./configure –prefix 命令用法–prefix=preFIX(文件安装的位置)‘–prefi原创 2020-05-10 23:27:34 · 3119 阅读 · 0 评论 -
AOP配置
一、基本配置和切入点表达式写法spring中基于xml的aop配置把通知Bean交给spring管理使用aop:config标签表明开始aop配置使用aop:aspcet标签表明配置切面id属性:是给切面提供一个唯一标识ref属性:指定通知类bean的id在aop:aspect标签的内部使用对应标签来配置通知的类型<!--配置springIOC,把se...原创 2020-05-03 23:28:01 · 873 阅读 · 1 评论 -
Spring事务
spring支持编程式事务管理和声明式事务管理两种方式:编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务是建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况...原创 2020-02-02 21:11:19 · 235 阅读 · 0 评论 -
IDEA安装P3C插件
基本说明为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则还实现了批量一键修复的功能。操...原创 2020-01-12 21:41:11 · 3722 阅读 · 0 评论 -
IDEA启动maven项目
IDEA中maven项目分为两种启动方式,本地tomcat启动和maven插件tomcat启动。一、maven插件tomcat启动:1.项目引入tomcat插件:2.在idea中配置tomcat7:run3.点击debug或者run启动...原创 2019-12-08 21:28:48 · 737 阅读 · 3 评论 -
统一异常处理
原创 2019-11-17 21:32:46 · 198 阅读 · 10 评论 -
解决:java.lang.IllegalStateException: dbType not support : null
java.lang.IllegalStateException: dbType not support : null, url jdbc:p6spy:mysql://192.168.22.58:3306/english?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Sh...原创 2019-11-10 21:35:03 · 30357 阅读 · 9 评论 -
Druid配置数据库密码加密
1) 命令行下加密java -cp D:/druid-1.1.13.jar com.alibaba.druid.filter.config.ConfigTools 明文执行之后会打印公钥,私钥和加密后的密码2.修改druid的配置文件增加:...原创 2019-10-06 21:50:47 · 653 阅读 · 4 评论 -
Token
Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。1.登录2.业务请求3.Token过期,刷新Token4.分离认证服务...原创 2019-08-18 22:19:26 · 201 阅读 · 4 评论 -
【Java】dubbo直连
目的:本地启动service或者单元测试,绕过注册中心,只测试指定服务提供者,点对点直连方式。步骤:1.复制下面选中文件,到本地的user.home目录下,不要改名字dubbo-resolve.properties2.修改dubbo-resolve.properties文件内容本服务的所有façade,都应该在这个文件中,不然读不到,下面标红的需要修改,其他不需要修改3.修改servi...原创 2019-07-28 21:15:37 · 358 阅读 · 12 评论 -
【Java】缓存配置
引入jar包<!—引入tool--><dependency><groupId>com.dmsdbj.itoo</groupId><artifactId>itoo-tool</artifactId></dependency><!--redis#--><dependency>&l...原创 2019-08-04 21:45:43 · 280 阅读 · 3 评论 -
【Java】IO
Java的IO流是实现输入输出的基础,他可以方便地实现数据的输入/输出操作,在Java中把不同的输入输出源(键盘,文件)抽象表述为:“流”。原创 2019-07-21 21:37:39 · 183 阅读 · 10 评论 -
【Java】集合
Java集合类是一种特别有用的工具类,用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等。Java集合大致可分为Set,List,Queue和Map四种体系。...原创 2019-07-14 21:40:48 · 169 阅读 · 7 评论 -
【Java基础】基本类型转换
基本数据类型自动类型转换自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。下图中,箭头左边的数值类型可以自动类型转换为箭头右边的数值类型。例如:long l = 100;int i = 200;long ll = i;强制类型转换强制类型转换即强制显示的把一个数据类型转换为另外一种数据类型,格式为:(targetType)value。例如:p...原创 2019-07-07 21:24:21 · 269 阅读 · 3 评论