自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 手写spring简易版本

自定义几个注解 用servlet来模拟一个spring,代码结构如下:大体代码逻辑如下:完整代码我发布在github:https://github.com/yangzhenyan/spring_1.git@YController@YRequestMapping("item")public class ItemController { @YAutowired private ItemService itemService; private ItemService item

2020-09-03 17:46:14 210

转载 Spring Data JPA查询sql命名规则

JPA查询sql命名规则

2022-11-16 17:22:05 277

转载 centos7下ssh免密登录设置

1、使用root用户登录,进入到目录/root/.ssh2、执行命令:ssh-keygen -t rsa一路回车,完成后会在目1、使用root用户登录,进入到目录/root/.ssh2、执行命令:ssh-keygen -t rsa一路回车,完成后会在目录/root/.ssh下面生成文件 id_rsa和id_rsa.pub3、将公钥写入文件authorized_keys:cat id_rsa.pub >> authorized_keys4、重复1、2、3,直到要免密登录的所有机器都生成

2020-11-25 22:43:45 357

原创 重启网络服务: service network restart (via systemctl): Job for network.service failed

我这和NetworkManager 服务有冲突:解决办法,关闭NetworkManager服务并静止开机启动[root@localhost~] # service NetworkManager stop[root@localhost~] # chkconfig NetworkManager off #禁止它开机启动然后service network restart...

2020-11-16 21:56:42 2732

转载 CAP理论

CAPC(Consistency):强一致性A(Availability):可用性P(Parition tolerance):分区容错性这三个基本需求,最多只能同时满足其中的两项,在分布式环境下因为P是必须的,因此往往选择就在 CP 或者 AP 中。各种组合的场景CA - 这个比较特殊,在分布式场景下这个不可能被实现。一般在 单点 或 单点集群上来实现,满足一致性 和 可用性,通常扩展性上不太友好。CP - 满足一致性 和 分区容错性 的系统,通常性能不是特别高。AP - 满足可用性

2020-11-16 18:00:49 388

原创 Eureka自我保护机制

Eureka注册中心Server在一定时间内(默认90s。Eureka服务端和客户端默认每隔30秒会联系一下,30s之后client会再访问一次server,如果server有3次没有收到client的注册信息(心跳信息),他就会把这个服务从列表中删除)没有收到某服务的心跳,就会注销该实例,但是当发生网络故障的时候(比如延时、卡顿)会导致Client和Server不能正常通信,此时的Client微服务是好的不应该给注销掉,所以Eureka在此时采用“自我保护机制”。自我保护机制:当Eureka Serve

2020-11-16 17:23:04 106

原创 Eureka集群搭建

搭建两个模块来演示Eureka的集群模块一cloud7001:application.yml配置server: port: 7001eureka: client: service-url: defaultZone: http://eureka7002:7002 register-with-eureka: false # 是否把自己注册到eureka服务列表(默认为true) fetch-registry: false # 是否拉取eureka服务serv

2020-11-06 17:58:27 222 1

原创 更换springcloud/boot版本之后 子工程jar包版本unknown错误

今天手动搭建一个cloud工程父工程pom.xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/

2020-11-06 17:05:12 576 1

原创 SpringCloud和Dubbo区别

SpringCloud(微服务开发的平台)Dubbo(专注服务发布和调用)性能Dubbo性能大约是SpringCloud的2~3倍服务注册中心springcloud netflix eureka和springcloud zookeeperzookeeper服务调用方式Rest apiRPC服务网关springcloud zuul和springcloud gateway无断路由springcloud netflix Hystrix集群容错...

2020-11-01 21:53:52 384

原创 SpringCloud常见组件详解

一、什么是springcloudSpringCloud:服务治理平台,包含服务注册与发现、配置中心、负载均衡、数据监控等。利用springboot开发的便利性简化了分布式系统基础设施开发.二、常见组件1、Eureka:服务注册与发现Netflix开发的服务发现框架,包含2个组件:Eureka Server和Eureka ClientEureka Server相当于一个注册中心,等待Eureka Client客户端的启动连接,客户端访问注册中心之后,注册中心会记录客户端的ip,把所有服务进行一个登记

2020-11-01 21:26:50 491

原创 项目中对于异常的处理

对于在方法内部出现异常程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出去定义方法时需要把出现的问题暴露出来让调用者处理的话,就用throws声明一个异常如果内部可以将问题处理用try…catch…,try…catch之后的代码可以正常运行,如果处理不了就交由调用者处理注意:尽量不要用e.printStackTrace(),用log打印printStackTrace打印的堆栈日志跟业务代码日志交错在一起,日志排查不方便printStackTrace语句产生的字符串记录的是堆栈

2020-10-17 15:52:56 149

原创 mysql和oracle分页的区别

mysqlselect * from tb limit 0,5;select * from tb limit (当前页码-1)*每页条数,每页条数;oracleselect * from (select tb.*,rownum rn from tb) where rn between 1 and 5;mysql从0开始计算页码,oracle从1开始

2020-10-17 10:03:11 221 1

原创 线程的几种状态(详细)

线程状态解释NEW初始状态,线程被构建,还没有调用start()方法RUUNABLE运行状态,就绪(执行了start方法)和运行(就绪状态线程获得cpu执行权,执行run方法)两种状态笼统的称作 运行中BLOCKED阻塞状态,表示线程阻塞于锁WAITING等待状态,需要等待其他线程TIME_WAITING超时等待状态,它可以在指定的时间自行返回TERMINATED终止状态,线程执行完毕线程创建之后,调用start()方法开始运行。当线程执...

2020-10-10 23:19:04 1221

原创 单例模式在单线程多线程下的写法

1、饿汉模式public class HungrySingleton { private static final HungrySingleton instance = new HungrySingleton(); private HungrySingleton(){} public static HungrySingleton getInstance(){ return instance; }}饿汉模式在类加载的时候就完成了实例化,所以没有线程

2020-10-08 19:51:11 1772 5

原创 实现Aop动态代理的方式

代理类:跟目标类是属于同一个继承体系的,它要么是目标类的子类,要么就是实现了一个和目标类相同的接口。主流API:1、JDK的Proxy2、CglibProxy:代理类实现了和目标类相同的接口Cglib:代理类是目标类的子类...

2020-09-29 21:21:35 96

转载 Java 自带性能监控工具:监视和管理控制台 jconsole 的使用

1. 前言Java 自带性能监控工具:监视和管理控制台 jconsole,它可以提供 Java 某个进程的内存、线程、类加载、jvm 概要以及 MBean 等的实时信息。2. JVM 一些参数在启动 jconsole 之前我们先来回顾一下 JVM 的一些主要参数:-Xms 初始/最小堆内存大小-Xmx 最大堆内存大小-Xmn 年轻代大小-XX:NewSize 年轻代大小-XX:MaxNewSize 年轻代最大值-XX:NewRatio 年老代与年轻代比值-XX:MaxPermSize 持

2020-09-25 10:43:40 475

原创 阻塞和非阻塞

同步异步关注的是消息通信机制阻塞非阻塞关注的是程序在等待结果调用时(消息、返回值)的状态阻塞调用:指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回非阻塞调用:指在不得立刻得到结果之后,该调用不会阻塞当前线程...

2020-09-24 11:18:27 428

原创 给表增加一个字段并添加默认值和备注

ALTER TABLE ‘表名’ ADD ‘要新增的列名’ 字段类型和大小 DEFAULT ‘默认值’;COMMENT ON COLUMN ‘表名’.‘列名’ IS ‘备注’;例如:ALTER TABLE tb_user ADD mobile VARCHAR(30) DEFAULT ‘123456789’;COMMENT ON COLUMN tb_user.mobile IS ‘手机号’;...

2020-09-24 11:13:54 2608

原创 并发和并行

并发:是逻辑上同时发生,指在某一个时间内同时运行多个程序。并行:是物理上同时发生,指在某一个时间点同时运行多个程序。

2020-09-24 10:40:55 56

原创 同步和异步

-同步:发送一个请求,等待返回,再发送下一个请求。同步可以避免死锁、脏读的发生-异步:发送一个请求,不等待返回,随时可以再发送下一个请求。可以提高效率,保证并发

2020-09-24 10:28:48 93

原创 为什么要用到并发 并发的缺点

为什么要用到并发①充分利用多核CPU的运算能力②方便业务拆分并发的缺点①频繁的上下文切换②线程安全问题(常见的死锁)

2020-09-24 10:27:58 107

原创 进程与线程

一、进程:正在运行的程序,是系统进行资源分配和调用的独立单位。点击应用程序执行,进入到内存中,占用一些内存执行,进入到内存的程序叫进程二、线程:是进程中的单个顺序控制流,是一条执行路径。一个进程如果只有一条执行路径,则称为单线程程序。一个进程如果有多条执行路径,则称为多线程程序。...

2020-09-24 10:20:56 175

原创 手写Spring之MVC实现(二)

继手写spring之Ioc、DI之后,对其中的mvc功能做了进一步操作主要是自己手动实现mvc九大组件中的其中3个,包括HandlerMapping、HandlerAdapter、ViewResovler。另外又实现了View以及ModelAndView对象代码整体结构如图基本思路流程:MVC(初始化Ioc DI操作完成之后,会初始化MVC九大组件,这里我们实现其中3个组件,初始化之后会执行service)一、initHandlerMapping()1、调用applicationContext

2020-09-20 16:43:17 96

原创 MVC九大组件

组件作用1MultipartResolver多文件上传的组件2LocaleResolver本地语言环境3ThemeResolver主题模板处理器4**HandlerMapping** 保存Url映射关系5**HandlerAdapter** 动态参数适配器6HandlerExceptionResolver异常拦截器7RequestToViemNameTranslator视图提取器,从request中获取viemName...

2020-09-10 14:36:53 864

原创 手写spring之Ioc、DI实现(一)

代码整体结构如图基本思路流程:一、new ApplicationContext() 读取配置文件 获取全类名listBeanDefinitionReader工具类:1.读取xml中配置的文件 Properties读取成键值对形式 获取scanPackage2.向下递归扫描出.class结尾的文件放入全类名list二、扫描子类及其实现的接口(接口的值用子类值存储),封装得到BeanDefinitionList集合1.doLoadBeanDefinitions()遍历全类名list 将beanN

2020-09-10 11:34:06 204

原创 Git复制已有分支到新分支开发

1、创建新分支devgit branch dev2、把新建的分支push到远端git push origin dev3、切换到新分支devgit checkout dev4、验证当前的新分支有没有和本地分支关联git pull5、关联git branch --set-upstream-to=origin/dev6、再次验证是否关联git pull此时远程仓库就已经存在新创建的分支啦删除远程分支:git push origin :dev...

2020-09-03 17:21:27 526

转载 用命令将新项目上传到git

1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库git init2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件git add .3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明git commit -m 'first commit'4、关联到远程库git remote add origin 你的远程库地址5、获取远程库与本地同步合并(如

2020-09-03 16:50:44 258

原创 Spring之@Profile注解

@Profile注解 可以实现根据设定的环境要求来注册bean——注解在方法上会根据对应要求注入bean——注解在类上,若类环境符合要求,则注入方法上也对应环境的bean;若类环境不符合要求,整个类中的bean都不会被注入配置类:@Configuration //告诉spring这是个配置类@Profile("dev")public class SpringConfig { @Profile("test") //设定Person在test环境下才注册 @Bean pub

2020-08-19 11:26:06 257

原创 自定义注解使用案例

使用注解:1、获取注解定义的位置对象 (Class,Method,Field)2、获取指定的注解 getAnnotation(Class)3、调用注解中的抽象方法自定义Check注解:@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface Check {}Calculator类中只有method方法没有加@Check注解:public class Calculator {

2020-08-18 14:25:31 343

原创 Spring之@Qualifier和@Autowired注解

@Qualifier注解和@Autowired一同使用,表示指定需要装配的组件的id @Qualifier("person02") @Autowired private PersonService personService;

2020-08-17 16:52:38 338

原创 Spring之@Value注解&@PropertySource

@Value注解作用于实体类上,为属性赋值可以赋值的形式:1、基本数值2、#{ }3、${ } 配置文件里的属性取值配置类:@Configuration //告诉spring这是个配置类public class SpringConfig { @Bean public Person person01() { System.out.println("person01..被创建放入ioc容器..."); return new Person();

2020-08-17 16:10:18 251

原创 idea自定义各种主题背景样式与删除

选择idea主题背景http://www.soft-hub.cn/打开idea中File——>Settings——>Import Settings打开你下载的主题jar文件目录点击ok,然后重启就可以了

2020-08-12 17:54:31 954

原创 bean的生命周期

一、@Bean指定初始化销毁方法配置类:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { @Bean(initMethod = "init",destroyMethod = "destroy") public User user(){ System.out.println("user..被创建放入ioc容器。。。");

2020-08-10 15:51:15 129

原创 Spring之@Import注解

@Import 注解 快速的导入一个组件到容器中,组件id默认是全类名假设我们要导入一个User类:public class User {}配置类里:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")@Import(User.class) //快速导入User对象到ioc容器中public class SpringConfig { @Bean public Person person01(

2020-08-09 17:32:02 153

原创 Spring之@Conditional注解

配置类:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { /** * @Conditional 按照条件注入bean * 如果系统是windows则注入该bean */ @Conditional(WindowsCondition.class) @Bean public Person person01(

2020-08-09 17:02:20 96

原创 Spring之@Lazy注解

@Lazy 懒加载(即延迟加载)只针对单实例,加了这个注解,在ioc启动的时候不会创建对象,在获取bean对象的时候才去创建对象,但是对象还是只会创建一次@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { /** * singleton 单实例的(默认) * prototype 多实例的 */ @Scope @

2020-08-08 21:42:08 331

原创 Spring之@Scope注解

xml文件中: <bean id="person" class="com.spring.bean.Person" scope="prototype"> <property name="age" value="20"></property> <property name="name" value="小杨"></property> </bean>配置类中:@Configuration

2020-08-08 21:21:09 255

原创 Spring之@ComponentScan注解

在配置类中:@Configuration //告诉spring这是个配置类//扫描com.spring包下的@Service、@Controller、@Repository、@Component (interface文件加了注解注入不进去)//也可定义过滤@ComponentScan(value = "com.spring",excludeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION,classes =

2020-08-08 12:37:38 191

原创 Spring配置类and配置文件(@Configuration和@Bean注解)

加入依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.RELEASE</version> </depen

2020-08-08 11:46:11 594

原创 Exception in thread “main“ java.lang.IllegalStateException: BeanFactory not initialized or already

Exception in thread “main” java.lang.IllegalStateException: BeanFactory not initialized or already closed - call ‘refresh’ before accessing beans via the ApplicationContext原因是 ApplicationContext context = new ClassPathXmlApplicationContext();解决

2020-08-08 10:52:30 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除