Java Spring
声明:以下内容大都来源https://www.liaoxuefeng.com
主要用于自己学习理清条理
- java中的类是构造面向对象程序的基本单位,是抽取了同类对象的共同属性和方法所形成的对象或实体的“模板”。
软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
- java对象的使用首先是声明对象,这个声明的对象名存在栈内存中,只是一个引用,没有实际的内容,所以需要实例化,实例化的意义在于在堆内存中分配一块内存给这个对象存放。
Vehicle veh1 = new Vehicle();
通常把这条语句的动作称之为创建一个对象,也就是实例化,其实,它包含了四个动作。
1)右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象(也简称为Vehicle对象)。
2)末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。
3)左边的“Vehicle veh1”创建了一个Vehicle类引用变量。所谓Vehicle类引用,就是以后可以用来指向Vehicle对象的对象引用。
4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。
IOC(Inversion of Control,控制反转)容器
- Spring的核心就是提供了一个IoC容器,它可以管理所有轻量级的JavaBean组件,提供的底层服务包括组件的生命周期管理、配置和组装服务、AOP支持,以及建立在AOP基础上的声明式事务服务等。
- 容器为某种特定组件的运行提供必要支持的一个软件环境。使用容器运行组件,除了提供一个组件运行环境之外,容器还提供了许多底层服务。Servlet容器底层实现了TCP连接,解析HTTP协议等非常复杂的服务。
- Tomcat就是一个Servlet容器,它可以为Servlet的运行提供运行环境。
- Docker软件也是一个容器,它提供了必要的Linux环境以便运行一个特定的Linux进程。
- 它解决了一个最主要的问题:将组件的创建+配置与组件的使用相分离,并且,由IoC容器负责管理组件的生命周期。
XML文件
因IoC容器要负责实例化所有的组件,通过XML文件来实现创建组件,以及各组件的依赖关系。
在Spring的IoC容器中,我们把所有组件统称为JavaBean,即配置一个组件就是配置一个Bean。
<property >用来指定需要容器注入的属性 name用来指定属性值;ref指定需要向属性值注入的id
依赖注入方式
- 依赖注入可以通过
set()
方法实现。 - 依赖注入也可以通过构造方法实现。
装配Bean
用户注册登录的例子,整个工程的结构如下:
spring-ioc-appcontext ├── pom.xml └── src └── main ├── java │ └── com │ └── itranswarp │ └── learnjava │ ├── Main.java │ └── service │ ├── MailService.java │ ├── User.java │ └── UserService.java └── resources └── application.xml
public class Main { public static void main(String[] args) { //1.初始化spring容器,加载配置文件 ApplicationContext context = new ClassPathXmlApplicationContext("application.xml"); //2.通过容器获取userService实例 UserService userService = context.getBean(UserService.class); //3.调用实例中的login( )方法 User user = userService.login("bob@example.com", "password"); System.out.println(user.getName()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能