一、创建一个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包中的组件或定制批量导入组件逻辑 |