spring的IOC注解

1、创建对象的注解
含义:使用注解的形式创建对象,交给Spring容器管理(需要配置在类上)
@Component:组件
@Controller:web层
@Service:service层
@Repository:Dao层
   默认:创建对象的唯一标识,当前类名首字母小写
   value属性:指定创建对象的唯一标识
举例:
//1、使用@Component创建对象,唯一标识为:account。以下两种任选其一,其中value可以指定唯一标识。
//@Component
@Component(value="account")
public class Account{}
//2、使用@Controller创建对象,唯一标识为:account。以下两种任选其一,其中value可以指定唯一标识。
//@Controller
@Controller(value="account")
public class Account{}
//3、使用@Service创建对象,唯一标识为:accountServiceImpl。以下两种任选其一,其中value可以指定唯一标识。
//@Service
@Service(value="accountServiceImpl")
public class AccountServiceImpl{}
//4、使用@Repository创建对象,唯一标识为:accountDaoImpl。以下两种任选其一,其中value可以指定唯一标识。
//@Repository
@Repository(value="accountDaoImpl")
public class AccountDaoImpl{}

2、依赖注入的注解(可以理解为注入类中的属性)
@AutoWired:
   默认:
    1、按照类型(接口)从容器中查找对象,并注入。
    2、按照属性名作为唯一标识从容器中查找对象,并注入。
举例:
public class AccountDaoImpl{
    @AutoWired
    private QueryRunner qr;
}
@Qulifier:配合@AutoWired一起使用配置到属性上
    按照指定的唯一标识从容器中查找对象,并注入
    value:唯一标识
举例:
public class AccountDaoImpl{
    @AutoWired
    @Qualifier(value="queryRunner2")
    private QueryRunner qr;
}
@Resource:JDK提供的依赖注入的注解(按照指定唯一标识从容器中查找对象,并注入)
    name属性:唯一标识
举例:
public class AccountDaoImpl{
    @Resource(name="queryRunner")
    private QueryRunner qr;
}
注意:1、@Resource是JDK提供的注解,且并不是所有的JDK版本都支持
      2、@Resource可以完全取代@AutoWired+@Qulifier
@Value:注入被Spring管理的properties文件中的内容
使用properties之前需要在bean.xml中解析
<!-- 解析properties文件 -->
<bean id="propertySource" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <!-- set方式注入properties文件的路径
        location:注入单个properties路径
        locations:注入多个properties路径
    -->
    <!-- <properties name="location" classpath="jdbc.properties"></properties> -->
    <property name="locations">
        <array>
            <value>classpath:jdbc.properties</value>
        </array>
    </property>
</bean>

3、声明周期相关的注解
@Scope:指定创建对象的作用域(作用范围)
   value:singleton:默认,单例 || prototype:多例
@PostConstruct:指定初始化方法(对象创建之后立即执行的方法)
@PreDestory:指定销毁方法(仅单例对象有效),容器关闭,对象销毁执行的方法
举例
//默认的,可以的不写
@Repository(value="accountDao")
@Scope("singleton")
public class AccountDao{

    @PostConstruct
    public void init(){
        System.out.println("创建对象之后执行的方法");
    }

    @PreDestory
    public void destory(){
        System.out.println("销毁之前执行的方法");
    }
}

4、纯注解编程
目的:替换xml配置文件
实现:需要将spring的配置信息,配置到类:配置类
@Configruation:声明配置类
@ComponentScan:指定包扫描
    basePackage:包名
@PropertySource:将properties配置文件交给speing容器管理
    value:接受String类型数据(配置多个文件)
举例:
//1、声明配置类
//2、开启包扫描
//3、将propertirs文件交给spring容器管理
@Configuration
@ComponentScan(basePackage="cn.wzq")
@PropertySource(value="classpath:jdbc.properties")
public class SpringConfig{}

@Bean:配置到方法上,表明此方法的返回值交给sring容器管理
举例:
pubic class JdbcConfig{
    @Bean(name="dataSource")
    public DataSource getDataSource(){
        ComboPooledDataSource ds=new ComboPooledDataSource();
        ds.setUser("root");
        ds.setPassword("root");
        ds.setJdbcUel("jdbc:mysql:///speingdb");
        ds.setDriverClass("com.mysql.jdbc.Driver");
        return ds;
    }

    @Bean(name="queryRunner")
    public QueryRunner getQueryRunner(DataSource dataSource){
        QueryRunner qr=new QueryRunner(dataSource);
        return qr;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值