Spring注解开发

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部分原始注解的使用

  1. @Component

//xml方式  <bean id="userDao" class="com.hcx.dao.UserDaoImpl"/>
@Component("userDao") //注解方式
public class UserDaoImpl  implements UserDao {

    public void save() {
        System.out.println("保存中........");
    }
}
  1. @Autowired+ @Qualifier

//xml方式  <bean id="userService" class="com.hcx.service.impl.UserServiceImpl">
 @Component("userService") //注解方式
public class UserServiceImpl  implements UserService {

     //xml方式 <property name="userDao" ref="userDao"></property>
    @Autowired //按照数据类型从SPring容器中进行匹配的 (自动注入)
    @Qualifier("userDao") //注入谁就在容器中注入bean的id 
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void save() {
        userDao.save();

    }
}
  1. @Scope

 @Scope("prototype") //产生多个bean
 @Scope("singleton") //产生单个bean
public class UserServiceImpl  implements UserService {

}
  1. @Value

public class UserServiceImpl  implements UserService {
  
    @Value(${jdbc.driver})
    private String driver;

}
  1. @PostConstruct 和 @PostDestroy

  @PostConstruct //初始化方法
    public void init(){

        System.out.println("对象初始化方法");
    }
  @PreDestroy  //销毁方法
    public void destroy(){

        System.out.println("对象销毁方法");
    }

5.Spring新注解的使用

  1. @Configuration

//标志该类是Spring的核心配置类
@Configuration //用于指定当前类是一个Spring容器类,当创建容器时会从该类上加载注解
public class SpringConfiguration {
}
  1. @ComponenrScan

//<context:component-scan base-package="com.hcx"/>
@ComponentScan("com.hcx") //①用于指定Spring在初始化容器时要扫描的包 ②作用和在Spring的xml配置文件中的<context:component-scan base-package="com.hcx"/>一样
public class SpringConfiguration {

}
  1. @Bean和@PropertySource

//  <context:property-placeholder location="classpath:jdbc.properties"/>
@PropertySource("classpath:jdbc.properties") //用于加载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") //Spring会将会当前方法的返回值以指定名称存储到Spring容器中
    public DataSource getDataSource() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass(driver);  //会抛出异常
        dataSource.setJdbcUrl(url);
        dataSource.setUser(UserName);
        dataSource.setPassword(Password);
        return dataSource;
    }
}
  1. @Import
@Import(DataSourceConfiguration.class)//用于导入DataSourceConfiguration.class
public class SpringConfiguration {

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值