Spring基础篇:通过XML和注解两种方式配置Spring

简介: 通过XML和注解两种方式配置Spring

Spring

常说Spring的两个特点是:IOC和AOP。

  • IOC作为一个容器,负责管理Bean(类)
  • AOP作为一个切面增强机制,可以做到不修改源代码的情况下对非业务功能进行增强。

这里我们先主要学习IOC

学习Spring的核心,先从一个依赖开始:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.8.RELEASE</version>
</dependency>

如何将类交给IOC管理

IOC是核心,它有两个配置方式,一个是通过配置文件XML的方式,另外一种是通过配置类注解的方式。

XML的方式

下面是一个固定模板,用来做Spring配置的

<?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">

</beans>

我们通过让Spring管理一个类的例子了解一下简单的配置。

  1. 让Spring管理类,有两种类:第一个是自定义的类;第二个是JAR包中的类。

如果是自定义的类,我们首先需要自定义一个类。假设在top.chengyunlai.bean包下有一个Person

public class Person {

}
  1. 需要在XML文件中定义该类

需要用到一个标签:<bean>,被这个标签定义后,表示该类由Spring的IOC进行管理。
这个标签中有两个属性:idclass

  • id:该bean在IOC容器中叫什么名字,定义后,可以通过名字的方式取到该bean
  • class:该bean的全类路径在哪里(必填)
<bean id="person" class="top.chengyunlai.bean.Person"></bean>

如果省略id,就只能通过类型取到该bean

配置类注解的方式

配置类也是一个普通的自定义类,它得有一个标识:@Configuration;然后<bean>标签,在这里面是通过@Bean替换。配置文件中的class全类路径是通过,方法的方式获得被管理的Bean,先手动将需要被管理的类New出来,所以方法的返回值是被管理的Bean类型。id属性可以在@Bean中进行声明。

@Configuration
public class ApplicationConfig {
    // 可以直接在 `@Bean` 注解上显式的声明 Bean 的 id ,只不过在注解驱动的范畴里,它不叫 id 而是叫 **name**
    @Bean("MyPerson")
    public Person person(){
        Person person = new Person();
        return person;
    }
}

读取配置

因为有两种配置方式,所以读取也是有两种方式。

  1. ClassPathXmlApplicationContext,对应的是配置文件
  2. AnnotationConfigApplicationContext,对应的是配置类

读取配置文件

定义一个主类,编写Main方法,在Main方法中写如下代码:

  1. 读取配置文件

其中xxx/applicationConfig.xml是在resources文件下的路径。

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("xxx/applicationConfig.xml");
  1. 读取配置类

其中ApplicationConfig.class是在配置类。

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
目录
相关文章
|
10天前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
136 73
|
7天前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
96 69
|
5天前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
40 21
|
12天前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
10天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
10天前
|
Java Spring
【Spring配置相关】启动类为Current File,如何更改
问题场景:当我们切换类的界面的时候,重新启动的按钮是灰色的,不能使用,并且只有一个Current File 项目,下面介绍两种方法来解决这个问题。
|
10天前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
10天前
|
Java Spring
【Spring配置】创建yml文件和properties或yml文件没有绿叶
本文主要针对,一个项目中怎么创建yml和properties两种不同文件,进行配置,和启动类没有绿叶标识进行解决。
|
8月前
|
Java API Spring
Spring容器如何使用一个注解来指定一个类型为配置类型
Spring容器如何使用一个注解来指定一个类型为配置类型
62 0
|
3月前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
56 0