1 基于注解方式实现对象的创建
第一步:引入依赖
第二步:引入命名空间,开启组件扫描
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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" >
<!--开启组件扫描
1.如果扫描多个包,多个包用逗号隔开
2.扫描包上层目录
-->
<context:component-scan base-package="com.itcast"></context:component-scan>
</beans>
第三步:创建类,在类上面添加创建对象注解
注解 | 说明 |
---|---|
@Component | 使用在类上用于实例化Bean |
@Controller | 使用在web层类上用于实例化bean |
@Service | 使用在service用于实例化bean |
@Repository | 使用在dao层类上用于实例化bean |
@Autowired | 使用在字段上用于根据类型依赖注入 |
@qualifier | 结合@aurowired 一起使用用于根据名称进行依赖注入 |
@Resource | 相当于@autowired+@Qualifier ,按照名称进行注入 |
@value | 注入普通属性 |
@Scope | 标注bean的作用范围 |
@PostConstruct | 使用在方法上标准该方法时Bean的初始化方法 |
@PreDestroy | 使用在方法上标注该方法时bean的销毁方法 |
Java代码如下
package com.itcast.service;
import org.springframework.stereotype.Component;
// 在注解里面的value属性可以省略,默认值是类的名称,首字母小写
// @@Component(userService)
@Component(value = "userService") //== <bean id="userService" class="">
public class UserService {
public void add() {
System.out.println("service add...");
}
}
Test
测试代码
public class TestDemo {
@Test
public void testUserService(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
userService.add();
System.out.println(userService);
}
开启组件扫描的细节配置
第一种方式
第二种方式
1.2 基于注解方式的属性的注入
基于对象
-
1.
@Autowired
:根据属性类型进行自动注入(装配)第一步:把service和到对象创建,在service和dao添加对象的注解
第二部:在service注入dao对象,在service类添加到类型属性,在属性上面使用
@Autowired
-
2.
@Qualififier
:根据属性名称注入要和
@Autowired
一起使用 -
3.
@Resourse
:可以根据类型,也可以根据名称 不是spring中的包,是javax的扩展包根据类型注入
根据名称注入
注入普通类型属性
@Value
:注入普通类型属性
2.4 纯注解开发
-
创建配置类,替代xml配置文件
-
编写测试类