![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
后端框架
文章平均质量分 95
常用框架
帝鸿、
活到老学到老,不断提升自己,脚踏实地。
展开
-
SpringCloud-7-配置中心
一、创建配置中心微服务4041把所有配置文件都扔到git仓库里,修改配置文件,只需要发送一个post请求,不需要重启项目就能完成更新git创建仓库1.1 添加依赖其实和eureka一样,config也是个服务端,其他微服务连到这个模块就相当于客户端。注意:这个默认版本是2.2.1,其他版本如2.2.2会出现jar包冲突,nosuchmethod错误1.2 配置文件注意:你的git仓库是私有的就加上账号密码,公有的就可以不加server: port: 4041eureka:原创 2020-11-16 16:29:59 · 120 阅读 · 0 评论 -
SpringCloud-5-Hystrix
一、Hystrix概述熔断器,断路器,类似于家里的保险丝,保证分布式服务的安全运行1.1 服务雪崩在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者"的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。如果下图所示: A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用引起了B的不可用,并将不可用像滚雪球一样放大到C和D时,雪崩效应就形成了。现实通常是更糟糕原创 2020-11-15 21:21:45 · 163 阅读 · 0 评论 -
SpringCloud-8-事务控制
一、事务1.1 概念事务控制必须保证同一个连接,spring打个注解就解决了,但分布式里控制不住,可能是在自己微服务里同时调用三个微服务,不同数据库不同虚拟机不同ip地址,肯定控制不住。解决方法:1. 把关联性比较强的几个表放在一个微服务里,spring打个注解就可以用了2. 分布式用seata解决//seata中文网http://seata.io/zh-cn/https://github.com/seata/seatahttps://github.com/seata/seat原创 2020-11-15 00:18:06 · 2108 阅读 · 0 评论 -
SpringCloud-6-Zuul网关
一、网关作用nginx结构图就是一个微服务的统一入口,网关会根据路径进行分配,发送给不同的模块1.1 概述1.2 常见的API网关实现方式Kong基于Nginx+Lua开发,性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。问题:只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方式。ZuulNetflix开源,功能丰富,使用JAVA开发,易于二次开发;需要运行在web容器中,如Tomcat。问题:缺乏管控,无法动态配置;依赖组件较多;处原创 2020-11-12 06:51:51 · 138 阅读 · 1 评论 -
SpringCloud-4-OpenFeign
一、概念1.1什么是Ribbon1.2重要作用基于ribbon实现服务调用调用的服务可能会崩掉,实现客户端负载均衡,nginx是实现服务器的负载均衡二、OpenFeign(最好的调用方式)不使用RestTemplate,定义接口(服务名),方法(请求路径)在分布式服务出现以前用WebService:Web服务;还有.NET Remote远程调用三、Hystrix:熔断器三个状态:默认关闭;打开直接进入降级;打开后半开放出一个请求,请求成功就关闭,失败了就继续打开3.1 降级正常请求原创 2020-11-12 06:51:15 · 131 阅读 · 0 评论 -
SpringCloud-3-Ribbon
一、概念1.1什么是Ribbon1.2重要作用基于ribbon实现服务调用调用的服务可能会崩掉,实现客户端负载均衡,nginx是实现服务器的负载均衡二、OpenFeign(最好的调用方式)不使用RestTemplate,定义接口(服务名),方法(请求路径)在分布式服务出现以前用WebService:Web服务;还有.NET Remote远程调用三、Hystrix:熔断器三个状态:默认关闭;打开直接进入降级;打开后半开放出一个请求,请求成功就关闭,失败了就继续打开3.1 降级正常请求原创 2020-11-12 06:50:11 · 165 阅读 · 1 评论 -
SpringCloud-2-Eureka注册中心
一、Eureka服务注册中心所有模块的把自己的信息写到注册中心,模块间调用先在注册中心找到另一个模块的信息,查到就可以调用Eureka基本结构1.1 常见的注册中心(主要讲下zookeeper)Zookeeper有些公司在用,因为Dubbo推荐用这个,现在springcloud不推荐用,但也支持ZookeeperC:一致性A:可用性P:分区容忍性只能满足其中两个条件zookeeper:一个机器访问同步的服务器可以拿到数据,未同步的服务器就拿不到数据,那怎么实现一致性?(把信息同步到所原创 2020-11-12 06:49:40 · 123 阅读 · 0 评论 -
SpringCloud-1-概念及实现模块间调用
一、概念1.1系统架构的演变1.1.1 单体项目Web应用程序发展的早期,大部分web工程(包含前端页面,web层代码,service层代码,dao层代码)是将所有的功能模块,打包到一起并放在一个web容器中运行。优点:所有的功能集成在一个项目工程中项目架构简单,前期开发成本低,周期短,小型项目的首选。缺点:全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。系统性能扩展只能通过扩展集群结点,成本高、有瓶颈。技术栈受限。1.1.2垂直拆分当访问量逐渐增大,单一应用增加机器带原创 2020-11-07 14:28:10 · 1226 阅读 · 1 评论 -
Rebbitmq-3-SpringBoot整合
一、依赖二、配置自动配置+yml配置文件三、启用rabbitmq现在很多新的jar包不用打注解,有的老版本需要打,还是建议直接打上四、生产者五、消费者5.1 配置类配置声明及绑定配置类来配置,声明交换机、声明队列、绑定交换机也可以绑定交换机,一层一层传递这里注意绑定的是对象,要传对象过来或者直接写方法,一般不这么写5.2 消费者类监听六、确认消息6.1 生产者确认确认信息选择,通过干预spring生命周期就是在创建对象之前,要进行确认消息的选择,类似于原原创 2020-11-06 13:47:13 · 98 阅读 · 0 评论 -
RabbitMQ-2-工作模式及参数配置
一、workqueues多个消费者监听同一个队列,提高处理速度相比简单模式多加了消费者,类似于分布式,加快了处理消息的速度实际项目只声明一次队列,一般声明在消费者,因为消费者是一直运行的,不能关闭资源代码加一个消费者,就是复制一份消费者类即可,偶数就平均分配,奇数就一边2个一边3个二、publish/subscribe发布订阅(又叫扇出模式)将一个交换机里面的消息给多个队列,(消息同时发送到邮件队列和短信队列,两个消费者,一个监听邮件,一个监听短信(sms:short messaging se原创 2020-11-04 16:49:17 · 489 阅读 · 0 评论 -
RabbitMQ-1-概念及简单应用
一、为什么使用RabbitMQ只要写入数据库就响应给用户,用户体验比较好,发送邮件和短信就慢慢发1.1串行方式1.2 并行方式开两个线程快一些1.3 消息队列(这种最好)彻底分开为两个程序一个程序往队列里放消息,只负责把消息写入数据库;另一个程序就等待处理消息,拿到消息去发邮件或者发短信。只要消息写入消息队列,就算注册成功。1.4 作用应用解耦:写数据库和发送短信邮件分开流量削峰:流量高的时候不要一起处理,都放到消息队列里,拿一个处理一个,就不会丢数据了,解决了数据库连接原创 2020-11-04 16:48:45 · 224 阅读 · 2 评论 -
Redis-5-实际应用
一、session丢失本地请求不同服务器,session会覆盖二、分布式SpringSession共享之前的方法:session广播Spring-Session:把session数据存到redis中,每次getSession不去session中找,去redis中找,就不会丢了token:客户端携带token,分布式使用2.1添加依赖也是个小框架2.2 使用在启动类上打个注解即可,会自动将session存入redis三、Redis秒杀3.1商品数量:超卖解决方法:不用加锁,使原创 2020-11-02 19:57:18 · 119 阅读 · 0 评论 -
Redis-4-Java操作Redis
一、存对象这个写死了,key和value只能是String。可以序列化成json。存进去。取出来再转成对象用RedisTemplate<k, v>就比较灵活,默认使用了jdk的序列化,序列化为二进制格式的文件,不太好看,但安全,实际还是不好用注意k为object,所以假如存的1和"1",它俩不一样,取得数据不一样,而redis的key都为string,这里有冲突,后面自定义序列化器进行配置注意:用框架传输,实体类必须序列化,包括redis和cloud二、数据序列化方式Redi原创 2020-10-31 17:34:28 · 278 阅读 · 0 评论 -
Redis-3-Java搭建Redis
一、通用配置Jedis(无框架)Java操作Redis:jar包+API,框架(配置+ jar包+API)Redis官方推荐的工具类这里写法是最通用的:和Spring框架没有关系1.1 spring自动导入连接池的依赖1.2 基本操作Jedis1.3 使用连接池1.4 封装成工具类1.5 配置信息写入配置文件也可以这样获取二、spring配置jedis这里建的springboot项目,但是并没有用到启动器,只是用到了注入和读配置文件这里是自定义的配置文件,配置文件中自定原创 2020-10-31 17:33:55 · 330 阅读 · 0 评论 -
Redis-2-Linux操作Redis
一、Redis命令1.1 通用指令1.1.1 正则表达式1.1.2 基本命令1.1.2.1 key上面的命令key重名会直接覆盖(key对应数据覆盖newkey对应的表数据),下面的命令(nx=not exists)查询不到key才会修改1.1.2.2 数据库1.2 String添加后返回键对应字符串全部长度整数加完小数就不能加整数了,只能指定具体的小数来加不能减小数,只能加小数1.2.1 用字符存储对象1.3 hashMap<String key,Obje原创 2020-10-28 19:31:10 · 265 阅读 · 1 评论 -
Redis-1-Linux上搭建
一、Redis简介1.1 关系型数据库1.2 解决思路1.3 Nosql大数据用的是Hbase,java方向redis用的是最多的1.4 Redis和nginx都是c语言写的,要安装c和c++的编译器gcc1.5 特点i++:保证原子操作;多线程会出现指令操作被打断,i加了但没有赋值,最后得出的结果较真实数据小。redis6支持多线程指的是发送请求,执行指令还是单线程1.6 数据类型redis是以key-value方式存储的redis的key都是String,value才有原创 2020-10-28 19:30:39 · 117 阅读 · 0 评论 -
SpringBoot6-整合MyBatis、Shiro
一、整合MyBatis1.1 添加依赖mysql驱动包,默认是最新的版本mysql-spring-boot包不是spring做的,所以不受spring版本控制以前底层的都不需要自己写了,写映射文件就可以了,但自动配置的参数要配置一下1.2 目录位置1.3 配置文件1.3.1 以前的主配置文件配置写到springboot配置文件中1.3.2 打个Mapper注解,通过动态代理自动生成接口实现类每个类都打注解很麻烦,所以在主类加注解,全部扫描,就不用一个一个添加了1.4 最新版原创 2020-10-19 12:40:35 · 161 阅读 · 0 评论 -
SpringBoot5-Restful风格CRUD
一、Restful风格CRUD1.1 就是一种规范都是emp/1,你发送get就执行查询,发送put就执行修改以前像springmvc这样配置路径就不需要你做了1.2 示例代码1.2.1 查询限定请求方式为get转换日期格式1.2.2 添加1.2.2.1 添加前跳转查询(部门)查询跳转,添加之前的准备,超链接为get1.2.2.2 真正添加用请求方式来区分一定注意最后要重定向请求/emps的Controller,会自动跳转至查询页面,如果直接请求emps页面原创 2020-10-19 12:38:50 · 195 阅读 · 0 评论 -
SpringBoot4-日志-页面跳转-登录
一、日志门面实现SpringJCL(commons-logging)log4jSpringBootslf4jlogback1.1 控制日志1.2 自定义日志启动类使用logback核心类加一个@Slf4j注解,lombok可以自动生成logger对象log二、页面跳转2.1 静态资源解析默认的静态资源解析位置就在这不想用默认位置自己配,给了三个位置一般都够了我们就用默认的static下面,端口/a.html直接访问String页面跳原创 2020-10-08 23:30:19 · 276 阅读 · 1 评论 -
SpringBoot3-自动配置、配置文件和配置类
一、SpringBoot简化开发1.1 约定大于配置就不想放在主类包下面,也可以,在主类上面打个包扫描注解(没有必要给自己找麻烦)1.2 场景启动器一个特定开发环境中的所有jar包的整合1.3 XxxxAutoConfigure每个场景启动器中会有自动创建当前场景中需要使用的常用类1.4 XxxxProperties常用的类的对象创建以后,常用属性都有默认值,开发中不想使用这些固定的值,可以在SpringBoot的配置文件中修改,修改的属性值都是通过XxxxProperties类的set原创 2020-10-08 02:21:54 · 2418 阅读 · 0 评论 -
SpringBoot2-简介及搭建
一、简介Spring: EJB使用复杂,Spring是一个轻量级框架 Spring使用以及整合其他框架的时候,配置越来越多SpringBoot:(你写的越少,底层就越复杂) 简化Spring开发,底层就是Spring 约定大于配置,底层有自动配置你只需要会一个接口即可,底层SpringBoot都帮你对接好了官方更新的很快,我们用正式版2.2.10(2020年初的版本)我们建的时候只能用服务器最新的版本,进去再改成老版本二、开发工具eclipse:没有SpringBoot的创原创 2020-10-08 00:41:38 · 3788 阅读 · 0 评论 -
SpringBoot1-父项目聚合项目
一、父项目pom就是创建继承关系和聚合关系项目用的1.1 创建父项目项目之间有继承关系,先创建父项目(打包类型是pom),再创建子项目(类型任意,它如果想再被继承,也可以是pom,都可以)1.2 创建子项目建项目还是建普通的项目,聚合关系就是建module了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YubTVpOI-1602066532439)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/im原创 2020-10-07 18:29:11 · 604 阅读 · 0 评论 -
Maven3-jar包冲突及创建SSM项目
一、jar包冲突这种添加没有任何意义,不叫jar包冲突,在前的不起作用,在后的起作用,后面会覆盖前面,这不是jar包冲突这是你的问题我们指的jar包冲突是两个包同时依赖同一种第三方jar包,而依赖的版本不同会产生冲突,这种叫jar包冲突举个栗子1.1 第一声明优先我们假设这是两个不用框架的依赖包,依赖同一jar包spring-beans两个jar包都依赖同一jar包(版本不同),依赖的层级相同,依赖包的版本由声明在前的jar包决定前后顺序一换,就是4.2.1生效1.2 最短路径优先原创 2020-10-06 01:43:02 · 163 阅读 · 0 评论 -
Maven2-依赖管理及创建javaWeb项目
一、Maven的生命周期编译compile清理 clean测试 test打包 package 在项目的target目录安装 install 在本地仓库部署 deploy 在远程仓库(中央仓库是一个服务器团队在维护,无法部署)在Windows里配置的环境变量是在dos命令窗口用的,在eclipse里面用是在eclipse里配置的,各管各的这个build不是maven里面的命令,是通用命令,选择你以前执行过的命令1.1 在pom.xml里右键maven添加jar包依赖,添加插件1.原创 2020-10-05 23:32:12 · 201 阅读 · 0 评论 -
Maven1-配置及创建JavaSE项目
一、Maven简介项目构建工具(不只是管理jar包),项目设计和编码由程序员来做,它做不了;而编译,运行,测试,打包,部署,jar管理它都能做Apache提供,Java开发的,运行Maven要有基本的java开发工具包Maven仓库:存储jar包本地仓库:当前本地电脑远程仓库:局域网中的服务器中央仓库:远程服务器有远程仓库:本地连接远程,远程仓库中有就下载到本地,没有就去连中央仓库,中央仓库下载到远程,远程再下载到本地,适合团队开发,远程仓库可以连接多个本地仓库,所以很多公原创 2020-10-05 20:54:39 · 463 阅读 · 0 评论 -
SSM-整合Shiro
一、 密码加密-Hash散列算法基础的比较流程1.1 MD5加密md5只执行了加密,没有解密的方法。 网上很多说的md5解密其实就是把常见的字符串解密结果存起来,去进行一个一个的比对,并没有能真正的把md5解密的方法盐值加密原来的字符串再加一个字符串,把密码的复杂程度再次提高迭代次数按照md5的算法再算一次,默认就是1次,迭代一次就是2,迭代两次就是31.2 改自定义realm这段代码应该是注册时使用,对密码进行加密把数据库储存的盐值转换为credenti原创 2020-10-05 20:53:28 · 133 阅读 · 0 评论 -
Shiro3-授权
授权1.1 角色类似于计算机上的组,不同的组权限个数都不同不同的用户属于不同的组,对应不同的权限个数在shiro框架里就是这个roles角色表role中间表权限表 一个用户具有一个角色加一个角色id的主键即可,一对一一个用户具有多个角色要再加一张用户角色表,一对多1.2 格式数据库里权限就这么写:user:update不同的用户有着多个不同的角色,不同角色对应着不同的权限这个.原创 2020-10-03 23:44:27 · 472 阅读 · 0 评论 -
Shiro2-加密
一、 密码加密-Hash散列算法基础的比较流程1.1 MD5加密md5只执行了加密,没有解密的方法。 网上很多说的md5解密其实就是把常见的字符串解密结果存起来,去进行一个一个的比对,并没有能真正的把md5解密的方法盐值加密原来的字符串再加一个字符串,把密码的复杂程度再次提高迭代次数按照md5的算法再算一次,默认就是1次,迭代一次就是2,迭代两次就是31.2 改自定义realm这段代码应该是注册时使用,对密码进行加密把数据库储存的盐值转换为credenti原创 2020-10-03 23:43:56 · 127 阅读 · 0 评论 -
Shiro1-权限框架搭建及认证
一、Shiro简介权限框架 认证 authentacation,登录(不需要自己写拦截器) 授权 authorization,有没有执行操作的权限整体架构从编码使用的角度来看,shiro的一些核心详细架构二、搭建(最简单)2.1 jar包2.2 配置文件以后存到数据库2.3 类token里面已经有比较了,把这个结果交给subject.login用户名密码不匹配,报凭证错误异常,继承自runtimeexception自己捕获异常三、自定义Ream原创 2020-09-26 19:22:54 · 159 阅读 · 0 评论 -
SpringMVC5-Interceptor拦截器
注解开发一、配置文件二、不用实现接口处理方法相对配置很灵活,但参数和返回值有规定,不能随便写三、路径符合规则3.1 多路径配置省略的value属性是一个String[],字符串数组3.2 命名空间每个方法路径前面加一个统一的前缀(像前面加一个域名一样)3.3 方法通配在和my中间,方法路径前面有且只有一层my/b/third.do在和my中间,方法路径前面有任意层3.4 限定请求类型method是一个String[],字符串数组,现在写get和post就.原创 2020-09-26 14:50:59 · 287 阅读 · 0 评论 -
SpringMVC4-JSR303验证框架
数据验证服务端数据验证: 接收参数,取出对应字段,依次判断是否满足对应业务规则(JSR303少写的就是这些代码); 验证不通过,存储在域中,转发到页面显示。JSR303:java验证规范,Spring框架没有实现,Hibernate实现了1.1 jar包1.2 配置验证器验证器id取名为localValidator(图片里没有写)注册驱动的名字要跟bean的id一致1.3 注解字符串,非空是NotEmpty除了String的其他类型非空NotNull,范围验证.原创 2020-09-26 14:50:22 · 147 阅读 · 0 评论 -
SpringMVC3-传递数据
一、Date类日期类型spring是不会自动转换的,要写实现转换器接口的类spring是不知道有这个转换器的,要配置记得要配置mvc注解驱动二、异常处理Controller层的异常处理2.1 之前的处理方法(java里最基本的方法)同步异步2.2 框架中处理方法2.2.1 写配置文件统一异常配置不同异常去不同页面有具体对得上的异常,就去它的页面(npe.jsp),否则就去总的异常界面(error.jsp)缺点:这是个兜底的配置,怎么样都不会看到原创 2020-09-24 17:38:00 · 142 阅读 · 0 评论 -
SpringMVC2-注解开发
注解开发一、配置文件二、不用实现接口处理方法相对配置很灵活,但参数和返回值有规定,不能随便写三、路径符合规则3.1 多路径配置省略的value属性是一个String[],字符串数组3.2 命名空间每个方法路径前面加一个统一的前缀(像前面加一个域名一样)3.3 方法通配在和my中间,方法路径前面有且只有一层my/b/third.do在和my中间,方法路径前面有任意层3.4 限定请求类型method是一个String[],字符串数组,现在写get和post就.原创 2020-09-23 21:50:29 · 89 阅读 · 0 评论 -
SpringMVC1-概念及搭建
一、SpringMVC简介Spring框架的一个模块,实现了web的MVC请求。Spring3.0推出的。之前就是Structs2(和Struct完全是两个体系,底层推倒了重写),配合很绕,麻烦的多,而且它有的SpringMVC都有,所以就没人用了Hibernate(功能很强大,sql全都不用自己写,全自动框架;一级缓存二级缓存做的也比mybatis好)就是配置比较复杂,配错了可能把整张表删完MyBatis(半自动)把这几个名词记住,面试会考二、测试项目(xml)2.1 ja原创 2020-09-22 22:29:20 · 109 阅读 · 0 评论 -
Spring7-SpringAOP入门
一、SpringAOP入门代码AOP是一种思想,很多公司都实现了AOPSpring框架使用AOPSpring框架自己实现的AOP:7个基础包+aop联盟包(组织,定制规范,接口,门面)+aop.jar(Spring针对AOP的实现)引入第三方jar包,使用ApectJ实现,Spring推荐使用7个基础包+aop联盟包(组织,定制规范,接口,门面)+aop.jar(Spring针对AOP的实现)+aspectj.jar(ApectJ针对AOP的实现)+spring-aspectj.jar(原创 2020-09-18 16:37:30 · 224 阅读 · 0 评论 -
Spring4-整合MyBatis
IoC的典型应用让容器创建对象,初始化属性值应用:管理三层中的核心类Controller,Service,Dao框架整合:使用Spring框架管理其他框架的核心类,SSH,SSMSpring整合MyBatisMyBatis: jar包 主配置文件:实体类别名配置,四大参数,mapper映射文件 映射文件:sql语句 MyBatisUtils:SqlSessionFactory,SqlSession Dao接口 Mapper动态代理自动生成Dao接口的实现类一.原创 2020-09-18 16:36:55 · 503 阅读 · 0 评论 -
Spring6-AOP概念
一、设计模式1.1 增强一个类功能,把已有的类进行一个拓展继承(高内聚,低耦合) 缺点:继承的越多,耦合性越高,改动一个,受影响的越多 用继承来增强:增强的对象不能变,增强的功能是可以变的 ==原因:==子类可以无限派生,但子类的功能写死了,不能变,只要增加一个功能就要增加一个子类,会造成类很多,不好用 装饰者模式来增强:增强的对象可以变,增强的功能不能变 下面来进行对比二、装饰者模式示例一杯coffee,在原来咖啡的基础上进行包装,返回一个加糖加盐加奶的咖啡,但返回的永远原创 2020-09-18 12:21:23 · 472 阅读 · 0 评论 -
Spring5-装饰者模式及动态代理
一、设计模式1.1 增强一个类功能,把已有的类进行一个拓展继承(高内聚,低耦合) 缺点:继承的越多,耦合性越高,改动一个,受影响的越多 用继承来增强:增强的对象不能变,增强的功能是可以变的 ==原因:==子类可以无限派生,但子类的功能写死了,不能变,只要增加一个功能就要增加一个子类,会造成类很多,不好用 装饰者模式来增强:增强的对象可以变,增强的功能不能变 下面来进行对比二、装饰者模式示例一杯coffee,在原来咖啡的基础上进行包装,返回一个加糖加盐加奶的咖啡,但返回的永远原创 2020-09-18 12:20:52 · 317 阅读 · 0 评论 -
Spring3-IoC注解
域属性只能注解简单域属性,不能注解数组集合和set一、添加jar包二、添加约束头上面填一行,下面填两行最下面的一行约束标签三、标签3.1组件扫描器注意:下图中的*和import中的*完全不一样import是导入当前包及其子包下图中是扫描当前包的子包,不会扫描当前包的类四、注解4.1打一个@Compoent即可,默认id为school(S变小写)想起个别名,就这么写,其实没必要4.2 成员变量注入4.3 域属性自动注入byType好用跟component起的原创 2020-09-17 10:50:48 · 54 阅读 · 0 评论 -
Spring2-设值注入
自己定义个类,一定会写,以后都是配置一些系统的类,很重要一、字符串数组 对象数组二、字符串集合 对象集合三、字符串set集合四、mapmap遍历三种方式:所有key所有value所有entry,这里套用entry key是String,value是String key是String,value是对象五、property 六、域属性自动注入(数组,集合,set无法自动注入)6.1 按名称自动注入注意:同一id不能有两个bean,否则无法注入,本原创 2020-09-17 10:50:14 · 210 阅读 · 0 评论