7.管理bean之注解驱动
①流程
注解:1.可以写在类上,属性上
2.可以简化xml配置
3格式:@[注解名称](属性=value)
常用创建bean对象的注解:
(1) @component
(2) @service
(3)@controller
(4)@Repository
实现步骤1.引入aop的jar包
2.开启组件扫描
①要先声明context
②
<context:component-scan base-package="com.xyq.spring_1"></context:component-scan>
3.有以下service类
@Component
public class myService {
public void add(){
System.out.println("service已添加");
}
}
测试类:
@Test
public void testAdd(){
ApplicationContext context =new ClassPathXmlApplicationContext("bean1.xml");
context.getBean("myService", myService.class).add();
}
注意注解后面可以跟值,value意味着xml里bean的id 默认的话是类的名称首字母小写
②如何使用注解注入属性
有dao接口和myDao子类
public interface dao {
public void add();
}
@Repository
public class myDao implements dao{
@Override
public void add() {
System.out.println("dao has created and add");
}
}
将myDao类中加上 创建bean的注解
并在myService中使用@autowrie注解
@Component
public class myService {
@Autowired
myDao myDao;
public void add(){
System.out.println("service已添加");
myDao.add();
}
}
还有@qulified
和autowire一起使用,后面要跟值,意识是要用名称id来匹配
@resource
可以根据类型也可以根据名称注入,主要看你写不写后面的值
@value 注入普通类型的属性
8. 完全注解开发
我们想把最后xml也给去掉,于是就会想到创建一个配置类
并且将其加载到程序里,发挥原本xml的功能
1.创建注解类springConfig
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = {"com.xyq"})
public class springConfig {
}
测试类要修改一下
不在使用原本的自实现类,使用和注解相关的子类
@Test
public void testconfig(){
ApplicationContext context =new AnnotationConfigApplicationContext(springConfig.class);
context.getBean("myService", myService.class).add();
}