1.Spring原始注解
注解 | 说明 |
---|
@Component | 使用在类上用于实例化Bean |
@Controller | 使用在web层类上用于实例化Bean |
@Service | 使用在service层类上用于实例化Bean |
@Repository | 使用在dao层类上用于实例化Bean |
@Autowired | 使用在字段上用于根据类型依赖注入 |
@Qualifier | 结合@Autowired一起用于根据名称进行依赖注入 |
@Resource | 相当于@Autowired+ @Qualifier 按照名称进行注入 |
@Value | 注入普通属性 |
@Scope | 标准Bean的作用范围 |
@PostConstruct | 使用在方法上标准该方法是Bean的初始化方法 |
@PostDestroy | 使用在方法上标准该方法是Bean的初始化方法 |
2.Spring新注解
注解 | 说明 |
---|
@Configuration | 用于指定当前类是一个Sping配置类,当创建容器时会从该类上加载注解 |
@ComponenrScan | 用于指定Spring在初始化容器时要扫描的包 作用和在Spring的xml配置文件中的<context:component-scan base-package=“com.hcx”/>一样 |
@Bean | 使用在方法上,标注该方法上的返回值存储到Spring容器中 |
@PropertySource | 用于加载.properties文件中的配置 |
@Imort | 用于导入其他配置类 |
3.Spring注解的组件扫描
- 注意:使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,告诉Spring容器去哪找到注解,让Spring容器产生注解对应的对象,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段、和方法。
<context:component-scan base-package="com.hcx"/>
4.Spring部分原始注解的使用
- @Component
@Component("userDao")
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("保存中........");
}
}
- @Autowired+ @Qualifier
@Component("userService")
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("userDao")
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
userDao.save();
}
}
- @Scope
@Scope("prototype")
@Scope("singleton")
public class UserServiceImpl implements UserService {
}
- @Value
public class UserServiceImpl implements UserService {
@Value(${jdbc.driver})
private String driver;
}
- @PostConstruct 和 @PostDestroy
@PostConstruct
public void init(){
System.out.println("对象初始化方法");
}
@PreDestroy
public void destroy(){
System.out.println("对象销毁方法");
}
5.Spring新注解的使用
- @Configuration
@Configuration
public class SpringConfiguration {
}
- @ComponenrScan
@ComponentScan("com.hcx")
public class SpringConfiguration {
}
- @Bean和@PropertySource
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfiguration {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.userName}")
private String UserName;
@Value("${jdbc.password}")
private String Password;
@Bean("dataSource")
public DataSource getDataSource() throws PropertyVetoException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(url);
dataSource.setUser(UserName);
dataSource.setPassword(Password);
return dataSource;
}
}
- @Import
@Import(DataSourceConfiguration.class)
public class SpringConfiguration {
}