Spring——注解
简介
Spring作为容器,除了在xml配置对象。也可以通过注解配置对象。
注解
Spring的原始注解主要代替<Bean>的配置
@Component:使用在类上用于实例化Bean(Spring注入)
@Controller:使用在web层类上用于实例化Bean
@Service:使用在service层类上用于思力华bean
@Repository:使用在dao层类上用于实例化Bean
@Autowired:结合@Autowired使用,用于根据名称进行依赖注入(依赖注入)
@Qualifier:结合@Autowired使用,用于根据名称进行依赖注入 (引用)
@Resource:相当于@Autowired+@Qualifier,按照名称进行注入
@Value:注入普通属性
@Scope:标注Bean的作用范围
@PostConstruct:使用在方法上标注该方法时Bean的初始化方法
@PreDestroy:使用在方法上标注该方法时Bean的销毁方法

使用
@Component("userService")
@Scope("singleton")
public class UserService {
@Autowired // 依赖注入
@Qualifier("userDao") //引用
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao = userDao;
}
public void save(){
userDao.save();
}
}
Spring的新注解
@Configuration:用于指定当前类时一个Spring配置类,当创建容器时会从该类上加载注解
@ComponentScan:用于指定Spring在初始化容器时要扫描的包。
作用和在Spring的xml配置文件中的<context:component-scan base-package='com.itheima'/>一样,用于找扫描的包
@Bean:使用在方法上,标注该方法的返回值存储道Spring容器中。
主要用在datasource上的方法初始化。
@PropertySource:用于加载.properties文件中的配置。
读入配置文件,用SPEL取值。
@Import:用于导入其它配置类。
导入其他配置类。

使用
@ComponentScan("xyz.javaswing")
@PropertySource("classpath:jdbc.properties")
@Import({DataSourceConfigration.class})
@Configuration
public class SpringCofiguration {
@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") // Spring会将当前方法的返回值以指定名称存储到spring容器当中
public ComboPooledDataSource getDataSource() throws SQLException, PropertyVetoException {
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(username);
comboPooledDataSource.setPassword(password);
return comboPooledDataSource;
}
}
SPEL:和EL,expressLanguage类似的语言。在注解中用${key}访问properties文件里键值对。
需要通过@PropertySource("classpath:jdbc.properties"),导入数据。
注意
使用注解开发,需要创建专门存放配置类的包config


浙公网安备 33010602011771号