09-Spring-注解

starrylsi
2024-09-11 / 0 评论 / 17 阅读 / 正在检测是否收录...

目标: 通过注解创建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")

在类上使用注解

  1. 注解在类上使用
/**
 * @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也被初始化了");
    }
}
  1. 当我们在类上使用了注解之后。一定要在Spring配置文件中加上包扫描的配置才能生效
<!-- context:component-scan 表示包扫描
        base-package    指定要扫描哪些包下的类(并且包含子包)
 -->    
<context:component-scan base-package="top.starrylsi"></context:component-scan>
  1. 测试
@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

评论 (0)

取消