Spring注解:
@Component = @Repository @Service @Controller (bean)
@Value (普通property)
@Resource(name="userDao") = @Autowired + @Qualifier("userDao") (对象property)
@PostConstruct @PreDestroy
@Scope("")
1.如何引入注解
pom.xml加入依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.2.4.RELEASE</version> </dependency>
applicationContext.xml开启spring注解扫描
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.pheony.demo6"></context:component-scan> </beans>
2.spring2.5之后引入注解去定义bean
/** * 传统方式<bean id="" class=""></bean> * 注解方式:直接在类上面@Component(id) */ @Component("userService") public class UserService { public void say(){ System.out.println("hi"); } }
@Component又可根据功能模块不同分成@Repository,@Service,@Controller
3.属性注入的注解
/** * 注入普通值 * 传统方式:生成setter方法,<property name="name" value="李四"> * 注解方法:可不生成 setter方法,在变量前使用@Value(""),若有setter方法,加在setter方法上 */ @Value("李四") private String name;
/** * 注入对象 * 传统方式:生成setter方法,<property name="name" value="李四"> * 注解方法:可不生成 setter方法,在变量前使用@Value(""),若有setter方法,加在setter方法上 */ // @Autowired // @Qualifier("userDao") @Resource(name="userDao") private UserDao userDao; public void save(){ userDao.save(); System.out.println("userService保存用户"); }
@Autowired默认按照类型注入,可结合@Qualifier指定名称,相当于@Resource
@Resource(name="userDao") = @Autowired + @Qualifier("userDao")
4.其他注解
5.可整合xml和注解开发