Bean管理(注解)和AOP
spring的bean管理(注解)
注解写法:@注解名称(属性名称=属性值)
注解使用在类上面,方法上面和属性上面
Spring注解开发的准备
- 导入基本jar包,与spring的bean管理(配置文件)的那一章节引用相同;
- 导入aop的jar包
- 创建类,创建方法
- 创建spring配置文件,引入约束
4.1 上一篇做ioc的基本功能,引入的是beans
4.2 做spring的ioc注解开发,还要引入新的约束(context)
4.3 在上一步中的xml配置文件中加入开启注解扫描的标签,其中base-package是待创建类所在包的名字,可以只写到父包名,这样会包含所有的子包名
-
使用注解创建对象
- 在待创建对象的类上面使用注解@Component
@Component(value = "user") //完全等同于在xml中添加标签 <bean id="user" class =""/>;可以看出value就是bean中的id值 public class User{ public void add(){ System.out.println("add....."); } }
2. 依然可以采用相同写法的测试代码对以上待创建类进行测试,注意getBean方法中的参数此时为注解中value值,此处也看出注解中value和xml中的配置对象的id为同一个东西
3. 创建对象还有其他三个注解
4. 创建对象是单实例还是多实例(不写默认是单实例)
方法:在@Component注解下添加@Scope(value=“prototype”)
-
使用注解注入属性
1.案例:创建service类,创建dao类,在service得到dao对象,
方法一:使用@Autowired [根据类名来找到需要创建对象的类,此注解没有参数,是根据被注解的属性的类型来确定类名]
方法二:使用@Resource(name="userDao") [此userDao即是类UserDao中注解的value值,也可以是xml中待创建类的id值]
@Compontent(value="userService")//value这个单词可以省略不写 public class UserService{ //1定义dao类型属性 //使用注解方式时候不需要set方法 ,在dao属性上面使用注解完成对象注入 @Autowired private UserDao userDao; public void add() { userDao.add(); } } //另一个java文件中 @Compontent(value="userDao") public class UserDao{ public void add(){ System,out.println("add........"); } }
-
xml和注解方式的混合使用
方式:创建对象操作使用配置文件方式实现(如下1.1);
注入属性操作使用注解方式实现(如下1.2)
- 案例:在BookService类中调用BookDao类和OrdersDao类
1.1 在xml中添加待创建类 (等同于在类中直接使用@Compontent(value="userDao")这种写法)
1.2 在BookService类中添加属性(两个Dao类),以下@Resource(name ="bookDao")中name的取值,为xml中对应的id值,也可以把xml添加待创建对象的bean标签理解为在待创建的类中加了@Compontent(value="bookDao"),两个效果是一样的
AOP
-
aop概述
-
aop底层原理
-
aop操作相关术语
spring的aop操作(基于aspectj的xml方式)
log4j介绍
spring整合web项目演示
上一篇: 线程 线程池 Task
下一篇: python读取文本文件数据