一.注解详细介绍
1.用于创建对象的注解 作用就和在xml配置文件中编写一个bean标签实现的功能是一样的。
@Component:用于把当前类对象存入spring容器中
属性:value用于指定bean的id,当不写时它的默认值是当前类名且首字母改小写。
@Controller:一般用于表现层
@Service:一般用于业务层
@Repositroy:一般用于持久层
以上三个注解作用和属性与Component是一摸一样的,是spring框架为我们提供的三层使用的注解,使我们的
三层对象更加清晰
2.用于注入数据的 作用就和在xml配置文件中的bean标签中写一个<property>
标签的作用是一样的
Autowired:自动按照类型注入,只要容器中有唯一的一个bean对象类型和要注入的变量类型
匹配,就可以注入成功 。出现位置可以是变量上也可以是方法上。
Qualifier:在按照类中注入的基础之上再按照名称注入,它在给类成员注入时不能单独使用
但是在给方法参数注入时可以。属性:value用于指定注入bean的id
Resource:直接按照bean的id注入,可以独立使用,name:用于指定bean的id
以上三个注解都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现。
另外集合类型的注入只能通过XML来实现。
@Value用于注入基本类型和String类型的数据
属性:value用于指定数据的值,可以使用spring中SpEL(spring的el表达式)
SpEl的写法:${表达式}
3.用于改变作用范围的 作用就和在bean标签中使用scope属性实现的功能是一样的
@Scope用于指定bean的作用范围,常用取值:singleton、prototype
属性:value指定范围的取值
和生命周期相关的 (了解) 作用就和在bean标签中使用init-method和destroy-method作用是一样的
@PreDestroy用于指定销毁方法
@PostConstruct用于指定初始化方法
二.创建简单的maven工程项目如下
项目结构如下:
1.在pom.xml 中导入坐标代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lut</groupId>
<artifactId>day02_01annotionIOC</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>