一、创建一个HelloWorld
1、创建一个测试模块



2、在build.gradle文件中引入依赖,如下:
查询仓库
https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.22
如下为引入的依赖:
 //引入spring的核心容器
 compile(project(":spring-context"))
 compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
plugins {
    id 'java'
}
group 'org.springframework'
version '5.3.5-SNAPSHOT'
repositories {
    mavenCentral()
}
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    //引入spring的核心容器
    compile(project(":spring-context"))
    // https://mvnrepository.com/artifact/org.projectlombok/lombok
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
}
test {
    useJUnitPlatform()
}

3、创建一个测试类
package com.lori.spring;
import com.lori.spring.bean.Person;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
    public static void main(String[] args) {
        //从xml创建一个ioc容器
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
        Person bean = applicationContext.getBean(Person.class);
        System.out.println(bean);
    }
}
4、创建一个实体类
package com.lori.spring.bean;
public class Person {
    public String name;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }
}
5、创建一个xml配置文件

<?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 class="com.lori.spring.bean.Person" id="person">
            <property name="name" value="yiyangqianxi"/>
        </bean>
</beans>
6、控制台打印

二、Spring的核心注解
| 注解 | 功能 | 
|---|---|
| @Bean | 容器中注册组件 | 
| - | - | 
| @Primary | 同类组件如果有多个,标注主组件 | 
| - | - | 
| @DependsOn | 组件之间声明依赖关系 | 
| - | - | 
| @Lazy | 组件懒加载(最后使用的时候才创建) | 
| - | - | 
| @Scope | 声明组建的作用范围 | 
| - | - | 
| @Configuration | 声明这是一个配置类 | 
| - | - | 
| @Component | @Controller,@Service,@Repository | 
| - | - | 
| @Indexed | 加速注解,所有标注了@Indexed的组件,直接会启动快速加载 | 
| - | - | 
| @Order | 数字越小,优先级越高,越先工作 | 
| - | - | 
| @ComponentScan | 包扫描 | 
| - | - | 
| @Conditional | 条件注入 | 
| - | - | 
| @Import | 导入第三方jar包中的组件或定制批量导入组件逻辑 | 








