| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 初学Spring框架(二) -> 正文阅读 |
|
[Java知识库]初学Spring框架(二) |
一、Spring IoC容器IoC(Inverse of Control)控制反转,将对象的创建以及对象依赖关系反转给Spring容器,程序本身不进行维护。Spring通过IoC容器来管理对象的实例化和初始化,以及对象从创建到销毁的整个生命周期。 Spring提供的2种不同类型的IoC容器,BeanFactory和ApplicationContext容器: 1、BeanFactory容器:由org.springframework.beans.factory.BeanFactory接口定义,采用懒加载,所以容器启动比较快; 2、ApplicationContext容器:继承了BeanFactory接口,增加了AOP、国际化、时间支持等,常用的两个实现类:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext。 二、Spring DIDI(Dependency Injection)依赖注入,spring容器在创建被调用者的实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过spring容器获得被调用者实例。 依赖注入的两种主要实现方式: 1、构造函数注入 指IoC容器使用构造函数注入被依赖的实例,可以通过调用带参数的构造函数实现依赖注入,每个参数代表一个依赖。 2、setter注入(设值注入) 指IoC容器使用setter方法注入被依赖的实例,通过调用无参构造器或者无参static工厂方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter的DI。 满足要求: (1)必须提供一个默认的无参构造方法; (2)必须为需要注入的属性提供对应的setter方法。 三、Spring注解1、@Component:让Spring容器来管理对象,相当于在xml中配置了一个Bean; 2、@Controller:和@Component作用一样,作用于表现层; 3、@Service:和@Component作用一样,作用于业务层; 4、@Repository:和@Component作用一样,作用于持久层; 5、@Value:给属性注入基本数据,支持SpEL; 6、@Autowired:自动按照类型注入,使用注解注入属性时,set方法可以省略,该注解只能注入bean类型,当有多个相同类型时,将bean的名字作为要注入对象的属性名,也可以; 7、@Qualifier:与 @Autowired 注解配合使用,会将默认的按 Bean 类型装配修改为按 Bean 的实例名称装配,Bean 的实例名称由 @Qualifier 注解的参数指定。 8、@Resource:直接按照bean的id注入,只能注入bean类型; 9、@Scope:指定Bean的作用范围,取值为:singleton、prototype、request、session、golbalsession; 10、@PostConstruct:指定初始化方法; 11、@PreDestroy:指定销毁方法。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:54:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |