Spring(二)IOC的注解方式用法
1.Spring的Bean管理:(注解方式)
1.1 步骤一:下载Spring的开发包:
官网:http://spring.io/
下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring解压:(Spring目录结构:)
* docs:API和开发规范.
* libs:jar包和源码.
* schema:约束.
1.2 步骤二:创建web项目,引入Spring的开发包:
在Spring的注解的AOP中需要引入spring-aop的jar包。
1.3 步骤三:引入相关配置文件:
log4j.properties
applicationContext.xml
引入约束:
spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html
* 引入约束:(引入context的约束):
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd">
</beans>
1.4 步骤四:编写相关的类:
public interface UserDao {
public void sayHello();
}
public class UserDaoImplimplements UserDao {
@Override
public void sayHello() {
System.out.println("Hello Spring...");
}
}
1.5 步骤五:配置注解扫描
<!-- Spring的注解开发:组件扫描(类上注解:可以直接使用属性注入的注解) -->
<context:component-scan base-package="com.itheima.spring.demo1"/>
1.6 在相关的类上添加注解:
@Component(value="userDao")
public class UserDaoImplimplements UserDao {
@Override
public void sayHello() {
System.out.println("Hello Spring Annotation...");
}
}
1.7 编写测试类:
@Test
public void demo2() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.sayHello();
}
2. Spring的Bean管理的中常用的注解:
2.1 @Component:组件.(作用在类上)
Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)
* @Controller:WEB层
* @Service:业务层
* @Repository:持久层
这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会对其增强
2.2 属性注入的注解:(使用注解注入的方式,可以不用提供set方法.)
@Value:用于注入普通类型.
@Autowired:自动装配:
* 默认按类型进行装配.
* 按名称注入:
* @Qualifier:强制使用名称注入.
@Resource相当于:
* @Autowired和@Qualifier一起使用.
2.3 Bean的作用范围的注解:
@Scope:
* singleton:单例
* prototype:多例
2.4 Bean的生命周期的配置:
@PostConstruct:相当于init-method
@PreDestroy:相当于destroy-method
3. Spring的Bean管理的方式的比较:
XML和注解:
* XML:结构清晰.
* 注解:开发方便.(属性注入.)
实际开发中还有一种XML和注解整合开发:
* Bean有XML配置.但是使用的属性使用注解注入.