Spring-(一)环境配置和入门案例

本文最后更新于:December 3, 2021 pm

Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。Spring 框架不局限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 框架还是一个超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力。

目录

注意:这里建的是maven。并且已有一个接口(Service)和其实现类(ServiceImpl)。

1.添加依赖

pom.xml中的dependencies内,添加以下代码。

1
2
3
4
5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>

2.创建配置文件

注意:这里创建配置文件有两种形式。第一种是放在resources资源目录下(推荐),第二种是放在src目录下。推荐第一种,因为编译时会自动将配置文件放到targetclasses目录下,而第二种则需要手动将配置文件复制到targetclasses目录下。视具体情况而定。

创建beans.xml配置文件,如下

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="test" class="com.tothefor.service.impl.PersonServiceImpl" />

</beans>

其中,id具有唯一性,可以自取,下面将会用到;class属性是类的全限定名称。一个bean就是一个对象,若有多个对象,则创建多个bean。
声明bean就是告诉Spring要创建某个类的对象,Spring会通过id找到对象,class必须使用类,不能是接口,因为Spring是反射机制创建对象。Spring会将创建好的对象放到一个map中,map的存储形式是map.put(id的值,对象),实际是:map.put(“id”,new PersonServiceImpl())。

3.创建容器对象(ApplicationContext)

创建一个测试类。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//正常创建对象
@Test
public void test01(){
PersonService personService = new PersonServiceImpl();
personService.show();
}
//Spring容器创建对象
@Test
public void test02(){
//配置文件的名称
String config = "beans.xml";
//创建Spring容器的对象,ClassPathXxmlApplicationContext:表示从类路径中加载Spring的配置文件,这里的类路径是target下的classes目录。
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(config);//实质上,在执行这句代码时就已经创建好了对象,可以在类的无参构造函数中添加打印语句进行查看,因为spring默认调用的无参构造方法;在创建Spring的容器时,会创建配置文件中的所有的对象
PersonService test = (PersonService) applicationContext.getBean("test"); //从容器中获取某个对象,返回值是Object,需要强转。getBean("配置文件中的id值")
test.show(); //使用对象
}

3.1 获取容器中对象的数量

getBeanDefinitionCount() 。返回个数。

1
2
3
4
5
6
7
8
@Test
public void test03(){
String config = "beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(config);
int ans = applicationContext.getBeanDefinitionCount();
System.out.println(ans); //2
}

3.2 获取容器中定义的对象的名称

getBeanDefinitionNames() 。返回一个String数组。
获取的是Spring配置文件的id值。

1
2
3
4
5
6
7
8
9
@Test
public void test03(){
String config = "beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(config);
String[] ans = applicationContext.getBeanDefinitionNames();
for(String it : ans){
System.out.println(it);
}
}

本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/3107177403.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!