| |
|
开发:
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 - (1) -> 正文阅读 |
|
[Java知识库]笑着学Spring - (1) |
前言?ladies and gentleman?,?大家好 ,我是羡羡 ,今天开始介绍spring的知识 ?学spring一定要笑着学, 笑着学😂, 嘿嘿 ,我学 **?👿 ? ? ?好了 ,我们来正式介绍 spring , 学的时候一定要记得笑着学 目录 Spring是什么?
? ? ? ? Spring 是于 2003 年兴起的一个轻量级的,非侵入式的,IOC 和 AOP 的 Java 一站式开发框架,它是为了简化企业级应用开发而生的。
这里我们简单介绍一下这几个词
轻量级
非侵入式
IOC(控制反转)
AOP(面向切面)
一站式
搭建你的第一个Spring实例
首先第一步, 在maven中导入spring的核心jar
可以在maven里看到 spring 核心包的jar依赖关系 写一个User类
在resources目录下新建 spring.xml 配置文件
IOC(控制反转)
正控:若要使用某个对象,需要自己去负责对象的创建
反控:若要使用某个对象,只需要从 Spring 容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了 Spring 框架
.
? ? ? ? 这样做有什么好处呢?
? ? ?IOC 容器是具有依赖注入功能的容器 , 负责对象的一系列操作, 我们把创建对象的控制权交给spring , 当我们需要的时候直接去容器获取, 不需要考虑类与类之间的依赖, 降低了耦合度
底层实现方式:
解析 xml/扫描注解标签 + 工厂模式 + 反射机制
Spring Bean 管理 (
基于 xml 配置方式)
我们在dao层先定义方法
service层 :?
在 spring.xml文件中配置依赖关系
通过上述代码可以看出 , userDao 依赖于 userService , 我们需要去配置这个依赖关系
Xml 配置方式依赖注入【DI:Dependency Injection】
? ?就是说, 我们可以在创建对象的同时,直接为属性注入值
这里有两种方式 :?
1. 通过构造方法? 2. 通过set方法
完善上面的 User 类
注入的两种方式如上 我们说框架的存在就是为了简化开发,那这样一直配置不也很麻烦吗? 所以这里我们引入注解注入的方式 注解
在spring.xml中开启注解扫描
@Autowired
@Autowired 是 Spring 提供的注解,可以写在字段和 setter 方法上。如果写在
字段上,那么就不需要再写 setter 方法。默认情况下它要求依赖对象必须存在,
如果允许 null 值,可以设置它required 属性为 false。
例如 :?
?我们可以这样, 直接将这个属性注入进来 但是需要注意, 我们上述注入的时候 , BookService类上需要加@Service , BookDao类需要加@Repository , 加注解表明交给spring管理,不加则扫描不到依赖关系
byType 自动注入
该注解默认使用按类型自动装配 Bean 的方式。
可以通过类型注入, 也可以通过name注入
byName 自动注入
JDK 注解@Resource 自动注入
S
pring 提供了对 jdk 中@Resource 注解的支持。@Resource 注解既可以按名称匹配 Bean,也可以按类型匹配 Bean。默认按照 ByName 自动注入
结语?关于spring今天就先谈到这里, 后面再来介绍AOP和事务管理这些内容,谢谢阅读😊 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 8:04:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |