目标: 通过注解创建Dao,Service,Controller
关键: 当我们使用Spring的注解功能的时候。需要把aop的jar包导入
注: 注解功能极其重要
pojo中的component注解把xml写bean的操作节省了
题外
一般mybatis使用xml配置文件而不用注解,使用xml可以把java代码拆开了
spring使用注解,认为spring是java代码的一部分
耦合性低,方便改代码,方便分配任务
使用注解: 不用配置bean了
Spring配置bean的常用注解有
@Controller 专门标注给web层的组件
@Service 专门给Service层的组件注解
@Repository 给Dao层组件标注
@Component 给Dao、Service、控制器Web层之外的组件进行标注。
@Scope 可以修改bean的Scope属性,默认不标注此注解表示单例。
也可以通过注解修改为多例@Scope(value="prototype")
在类上使用注解
- 注解在类上使用
/**
* @Repository注解的功能相当于在Spring配置文件中做了如下的配置:
* <bean id="bookDao" class="top.starrylsi.dao.BookDao" scope="singleton"></bean>
*/
@Scope(value="prototype")
@Repository(value="bookDao")
public class BookDao {
public BookDao() {
System.out.println("BookDao也被初始化了");
}
}
- 当我们在类上使用了注解之后。一定要在Spring配置文件中加上包扫描的配置才能生效
<!-- context:component-scan 表示包扫描
base-package 指定要扫描哪些包下的类(并且包含子包)
-->
<context:component-scan base-package="top.starrylsi"></context:component-scan>
- 测试
@Test
public void test1() throws Exception {
@SuppressWarnings("resource")
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
System.out.println( applicationContext.getBean("bookDao") );
System.out.println( applicationContext.getBean("bookDao") );
System.out.println( applicationContext.getBean("bookDao") );
System.out.println( applicationContext.getBean("bookService") );
System.out.println( applicationContext.getBean("bookServlet") );
System.out.println( applicationContext.getBean("person") );
}
评论 (0)