一、导包
当我们创建Maven项目之后我们第一步就是需要在pom.xml文件中导入Spring的项目包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
一般直接导入sprin-context就可以把其他的核心包都一起下进来
二、注册方式
1.在resources中创建Sping注册文件
<bean id="名字" class="要new的类路径" ></bean>
其中还有一些别的属性配置 例如:
lazy-init(懒加载)
scope(是否单例)
init-method(文件配置加载完之后直接执行次方法)
配置构造方法(了解不常用)
<constructor-arg 配置id名 />
其中也有一些配置文件
name 通过方法名来赋值
ref 若属性不是基本数据类型用这个
valuse 如果时基本数据类型用这个赋值
当然也可以直接调用类中的set 方法直接进行修改
2.注解的方式进行类配置注册
使用@Component()直接对类进行注册参数id
注意如果又两个或者多个首字符大写,就默认用类型
默认类型就是等于类名
之后我们需要在xml文件中配置一段代码
<context:component-scan base-package="整个包项目路径(Java文件内的包)" />
前面的注解类型可以根据你需要的配置
一共有四种
@Component 都适用
@Service 业务层
@Controller 控制层
@Repository 数据层
注意:如果要用于第三方库则不推荐使用注解的方式
三、依赖注入(注解)
有两种注解方式
@Autowired 和 @Resource
@Autowired时Spring自带的 可以在new的对象上直接使用此注解
属性: id=“xxxx名字” required=“true/falst”
@Resource 是javax包下的 属性比较多但是我们一般就使用name="xxxx名"的方式,默认就是跟着new的对象名去找(首字符会小写的去寻找)
两者的区别
- autowired是线程不安全的 resource是线程安全的
- autowired是通过id="“的方式去查找并且可以传入nullresource是通过name=”"的方式去查找但是不能传入null
- autowired通过类型查找bean如果有相同的报错!如果没找到报错!resource先通过名称去查资,在通过类型去查找,没有找到也会报错。