- 博主简介:想进大厂的打工人
- 博主主页:@xyk:
- 所属专栏: JavaEE进阶
目录
文章目录
一、创建Spring项目
1.1 创建Maven项目
2.2 配置国内源
二、Bean对象的存储和读取
2.1 添加spring配置文件
2.2 创建Bean对象
2.3 读取Bean对象
2.3.1 得到spring上下文对象
总结:spring框架使用
一、创建Spring项目
Spring项目的基础就是Maven项目:一路next下去
finish之后,出现这样的界面:
由于国外源不稳定,可能让下面第二步引入 Spring 依赖会失败,所以这里先介绍如何一下配置国内镜像源。
进入Settings,搜索Maven
注意我标红的位置,主要是下方的文件要和我一致(可以不在C盘)
settings.xml文件
C:\Users\86180\.m2\repository
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
如果你是在引入相关依赖失败后进行的国内源配置,就要去本地管理jar
包的目录将jar
包都进行删除,然后重新刷新下载依赖即可。
重新进行下载
3.添加spring依赖
在pom.xml中添加依赖,刷新
org.springframework
spring-context
5.2.3.RELEASE
org.springframework
spring-beans
5.2.3.RELEASE
添加的框架有 spring-context:spring 上下文,还有 spring-beans:管理对象的模块
4.创建启动类
在java目录创建类,写代码即可
右键resources
目录,新建一个spring-config.xml
配置文件。
配置文件内容如下:
public class student {
public void sayHi(String name){
System.out.println("hello!" + name);
}
}
然后将Bean
通过配置文件,注入到spring
中,即在spring
配置文件中通过以下语句注入。
id:将对象存储到容器的名字(后续取对象会用)
class:要存储对象的完整路径
获取并使⽤ Bean 对象,分为以下 3 步:
1. 得到 Spring 上下⽂对象,因为对象都交给 Spring 管理了,所以获取对象要从 Spring 中获取,那么就得先得到 Spring 的上下⽂。
2. 通过 Spring 上下⽂,获取某⼀个指定的 Bean 对象。
3. 使⽤ Bean 对象。
1.可使用ApplicationContext接口
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
student student = context.getBean("student", demo.student.class);
student.sayHi("张三");
}
}
实现类 | 描述 |
---|---|
ClassPathXmlApplicationContext(常用) | 加载类路径下的配置文件,要求配置文件必须在类路径下 |
FileSystemXmlApplicationContext | 可以加载磁盘任意路径下的配置文件(必须要有访问权限) |
2.还可以使用 BeanFactory工厂来获取Bean
public class App {
public static void main(String[] args) {
// ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
student student = factory.getBean("student", demo.student.class);
student.sayHi("张三");
}
}
但实际上并不推荐使用这种方式,算是过时代的方式了,因为旧时期需要考虑内存占用的问题,而现在内存资源没有这样的问题了。
上面两种效果都是一样的,那么ApplicationContext
与 BeanFactory
有什么区别?
相同点:
不同点:
验证ApplicationContext 加载机制:
可见,在spring框架一启动,会将所有的Bean对象创建出来,属于饿汉方式
验证BeanFactory加载机制:
可见BeanFactory是懒加载机制~~