一般问题 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年。这是第一个支持注解的版本。 Spring 3.0 发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。 Spring 4.0 发布于 2013 年。这是第一个完全支持 JAVA8 的版本。 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。 它是轻量级、松散耦合的。 它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。 它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。 列举 Spring Framework 的优点。 由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。 Spring Framework 支持 POJO(Plain Old Java Object) 编程,从而具备持续集 ...
Spring Bean 简介 如何注册一个 Spring Bean? 通过 BeanDefinition 和外部单体对象来注册 BeanDefinition 什么是 BeanDefinition BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口,包含: Bean 类名 Bean 行为配置元素,如:作用域、自动绑定的模式、生命周期回调等 其他 Bean 引用 配置设置,如 Bean 属性(Properties) l#beandefinition-元信息)BeanDefinition 元信息 BeanDefinition 元信息如下: 属性(Property) 说明 Class Bean 全类名,必须是具体类,不能用抽象类或接口 Name Bean 的名称或者 ID Scope Bean 的作用域(如:singleton、prototype 等) Constructor arguments Bean 构造器参数(用于依赖注入) Properties Bean 属性设置(用于依赖注入) Aut ...
IoC 概念简介 IoC 是什么 IoC,是 Inversion of Control 的缩写,即控制反转。 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象 抽象不能依赖于具体实现,具体实现依赖于抽象 注:又称为依赖倒置原则。这是设计模式六大原则之一。 IoC 不是什么技术,而是一种设计思想。在 Java 开发中,IoC 意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解 Ioc 呢?理解 Ioc 的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: **谁控制谁,控制什么:**传统 JavaSE 程序设计,我们直接在对象内部通过 new 进行创建对象,是程序主动去创建依赖对象;而 IoC 是有专门一个容器来创建这些对象,即由 IoC 容器来控制对象的创建;谁控制谁?当然是 IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。 **为何是反转,哪些方面反转了:**有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象, ...
写在前面的话: 本脚本模板不收取任何费用,初衷就是不想重复造梯子,如果对各位有帮助的话,可以给作者打上一杯奶茶钱,目前插件还是有点小Bug,但是不影响使用,现在各平台相关的代码生成插件也比较成熟了,并且带有独特的特色和一些自带的代码提示功能,使用感受整体都不错,但是好用的插件肯定是要收费的啦~具体的请参考下面相关插件查看 查看视频教程 参考插件 MyBatisCodeHelper-Pro codehelper.generator mybatis mybatis generator pageHelper mybatis-generator-gui mybatis generator plugin mybatisplus 功能介绍 本脚本只适用于EasyCode模板搭配使用支持生成代码具体如下: controller 层代码 ...
递归的概念 简单的说:递归就是方法调用自己,每次调用传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁 两个案列说明递归的调用机制 123456789101112public class Demo1 { public static void main(String[] args) { test(4); } public static void test(int n){ if(n>2){ test(n-1); }//else{加上else输出结果又是怎么样呢! System.out.println("n="+n); //} }} 建议先自己分析一下这个运行结果是啥! 然后在idea里面编译运行看一下结果,是不是和你想的一样。 递归调用的规则: 1.当程序执行到一个方法时,就会开辟一个独立的空间(栈 ) 2.就像上面的案例,当 ...
本文根据洪哥哔哔教程二改~解决哔哔发送图片问题 相关教程 教程地址 洪哥哔哔教程 洪哥哔哔教程https://blog.zhheo.com/p/a6947667.html 「哔哔点啥」微信公众号 「哔哔点啥」微信公众号 2.0 问题说明 可以看到问题很明显图片大小图片上下有多余得代码(洪哥js得问题)无法预览 修改步骤 源码修改方式cdn链接替换(推荐) 将洪哥heobbe.js文件拉取到博客存放js得目录下 修改其中得urlToLink方法 123456789101112131415161718192021function urlToLink(str) { console.log("判断是否是图片", str.indexOf("http")); if (str.indexOf("http") != -1) { var re_forpic ...
好处:大幅度减少Spring配置 坏处:依赖不能明确管理,可能会有多个bean同时符合注入规则,没有清晰的依赖关系。 在装配的时候会有两种方式,byName和byType两种。 byName:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。 byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置 什么是自动装配 自动装配:也就是 Spring 会在容器中自动的查找,并自动的给 bean 装配及其关联的属性 涉及到自动装配 bean 的依赖关系时,Spring 有多种处理方式。Spring 提供了 4 种自动装配策略 123456789101112131415161718public interface AutowireCapableBeanFactory extends BeanFactory { // 无需自动装配 int AUTO ...
写在前面得话 学习@Autowired之前建议先学会使用byType和byNameSpring的自动装配https://hgm.vercel.app/post/63755f3a/ @Autowired详解 首先要知道另一个东西,default-autowire,它是在xml文件中进行配置的,可以设置为byName、byType、constructor和autodetect;比如byName,不用显式的在bean中写出依赖的对象,它会自动的匹配其它bean中id名与本bean的set**相同的,并自动装载。 @Autowired是用在JavaBean中的注解,通过byType形式,用来给指定的字段或方法注入所需的外部资源。 两者的功能是一样的,就是能减少或者消除属性或构造器参数的设置,只是配置地方不一样而已。 autowire四种模式的区别 先看一下bean实例化和@Autowired装配过程: 一切都是从bean工厂的getBean方法开始的,一旦该方法调用总会返回 ...
@Autowired注解相信每个Spring开发者都不陌生了! 但是当我们使用IDEA写代码的时候,经常会发现@Autowired注解下面是有小黄线的,我们把小鼠标悬停在上面,可以看到这个如下图所示的警告信息: 那么为什么IDEA会给出Field injection is not recommended这样的警告呢? 下面带着这样的问题,一起来全面的了解下Spring中的三种注入方式以及他们之间在各方面的优劣。 Spring中的三种依赖注入方式 Field Injection @Autowired注解的一大使用场景就是Field Injection。 具体形式如下: 这种注入方式通过Java的反射机制实现,所以private的成员也可以被注入具体的对象。 Constructor Injection Constructor Injection是构造器注入,是我们日常最为推荐的一种使用方式。 具体形式如下: 这种注入方式很直接,通过对象构建的时候建立关系,所以这种方式对对象创建的顺序会有要求,当然Spring会为你搞定这样的先后顺序,除非你出现循环依赖,然后就会抛出异常。 S ...
@Configuration的使用 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。也就是说使用了这个注解完全不需要我们手动去配置applicationContext.xml了 注意:@Configuration注解的配置类有如下要求: @Configuration不可以是final类型; @Configuration不可以是匿名类; 嵌套的configuration必须是静态类。 @Configuation加载Spring方法 @Configuration配置spring并启动spring容器 @Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文) 123456789 ...