实现步骤:
1.加入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
2.创建类,在类中加入注解
```java
@Component(value = "myStudent") //等同于 <bean id="myStudent" class="com.mynode.ba01.Student"/>
public class Student {
@value("张三")//给name赋值
private String name;
@Value("18")//给age赋值
private Integer age;
public Student() {
System.out.println("调用student无参构造方法创建了对象");
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
3.创建spring的配置文件声明组件扫描器的标签,指明注解在你项目中的位置
<!-- 声明组件扫描器component-scan,组件就是Java对象
baese-package:指定注解在你的项目中的包名
component-scan的工作方式:spring会扫描遍历base-package指定的包,把包中和子包中所有的类扫描,找到类中的注解,按照注解的功能创建对象或给属性赋值
-->
<context:component-scan base-package="com.mynode.ba01"/>
4.使用注解创建对象,创建容器ApplicationContext
public class myTest01 {
@Test
public void test01(){
String config = "applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(config);
Student student = (Student) ac.getBean("myStudent");
System.out.println("student:"+student);
}
}
|
输出:
注解:
1)@Component
2)@Respotory
3)@Service
4)@Controller
5)@Value
6)@Autowried
7)@Resouce
spring中与@Component功能一致,创建对象的注解还有:
1. @Repasitory (用在持久层类的上面) :放在dao的实现类上面,表示创建dao对象, dao对象是能访问数据库的。
2. @Service(用在业务层的上间) : 放在service的实现类上面,创建service对象,service对象是 做业务处理,可以有事务等功能的。
3. @Controller(用在控制器的上面) ;放在控制器(处理器)类的上面,创建控制器对象的,控制器对象,能够接受用户提交的参数 ,显示请求的处理结果。
4. @Controller (用在控制器的上面) ;放在控制器(处理器)类的上面,创建控制器对象的,控制器对象,能够接受用户提交的参数 ,显示请求的处理结果。
5 @Value: 给简单类型赋值
6 @Autowried :spring框架提供的注解,实现*引用类型* 的赋值
默认使用byType自动注入
若要使用byName方式,需要:1.在属性上面加入 @Autowired 和 @Qualifier(value="bean的id值,即引用对象的名称")-->表示使用bean完成赋值
7)@Resouce (它是来自JDK中的注解,spring框架提供了对这个注解的支持,看i使用它给引用类型赋值)、
使用的也是自动注入原理,支持byName,byType,默认是byName
位置:1.在属性定义的上面,无需set方法,推荐使用
2.在set方法上面
以上第2,3,4个注解的使用语法和@Component一样的。都能创建对象,但是这三个注解还有额外的功能。@Repository。@service,@Controller是给项目的对象分层的