1.注解开发定义bean
@Component("bookDao")
public class BookDaoImpl implements BookDao{}
就相当于<bean id="bookDao" class="com.itheima.dao.Impl.BookDaoImpl"/>
同时,在核心配置文件中通过扫描组件加载bean(在类中使用@Component注解,而在容器中需要找到这个bean)
<context:component-scan base-package="com.itheima" />
Spring提供了@component的三个衍生注解
@Controller : 用于表现层bean定义
@Service :用于业务层bean定义
@Repository :用于数据层bean定义
2.纯注解开发模式(用Java类代替配置文件)
1所述方法虽然用到了@component注解简化了配置,但在配置文件中仍需要写出扫描的范围
<context:component-scan base-package="com.itheima" />
当用Java配置类时,可以将其省略
@Configuration设定当前类为配置类
@ComponentScan用于设定当前扫描路径,此注解只能添加一次,多个注解请用数组隔开
@ComponentScan({"com.itheima.dao","com.itheima.service"})
由于使用了Java配置类替代配置文件,所以读取spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象
原来:ApplicationContext cxt =new ClassPathXmlApplicationContext("applicationContext.xml")
现在:ApplicationContext cxt = new AnnotationConfigApplicationContext(springconfig.class)