day05 数据源注入&&容器相关&&容器总结

对于自己的类源,我们可以使用多种方式进行依赖注入,而对于其他数据源,我们应该怎么去注入依赖呢?

下面有案例:

注入c3p0并调用

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_db"/>
    <property name="user" value="root"/>
    <property name="password" value="root"/>
    <property name="maxPoolSize" value="1000"/>
</bean>
DataSource dataSource = (DataSource) ctx.getBean("dataSource");
System.out.println(dataSource);

几种容器类

最原始的类是beanfactory类,其最常用的接口是applicationcontext接口,而applicationcontext类的主流接口有两个,classpathxmlapplicationcontext接口,FileSystemxmlApplicationContext类

1.ClassPathXmlApplicationContext类

ClassPathXmlApplicationContext默认读取的是项目下classes文件夹下的文件,默认情况下路径是不需要加classpath:

访问绝对路径的时候:
ApplicationContext ctx = new ClassPathXmlApplicationContext("file:F:/stud/src/main/webapp/WEB-INF/applicationContext.xml");
多个配置文件:默认是classpath
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","spring.xml"});
支持通配符
ApplicationContext ctx = new ClassPathXmlApplicationContext(*.xml);

2.FileSystemXmlApplicationContext 默认的路径是项目的根目录

ApplicationContext ctx = new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");

1.可以读取绝对路径

ApplicationContext ctx = new FileSystemXmlApplicationContext("file:F:/stud/kaptcha/src/main/webapp/WEB-INF/applicationContext.xml");
// 使用磁盘绝对路径可以不加前缀
ApplicationContext ctx = new FileSystemXmlApplicationContext("F:/stud/kaptcha/src/main/webapp/WEB-INF/applicationContext.xml");

2.可以读取根目录下的路径
3.也可以对其classs下的文件路径,需要加上classpath:

ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");

可以看出,这两者的差别其实不大

对于容器类,从获取bean的角度看的话,有两种:按id号加载,按类型加载

1.按id号加载

最常用的加载方法,对应于bean的id号

BookDao bookDao = (BookDao) ctx.getBean("bookDao");

2.按类型加载

BookDao bookDao = ctx.getBean("bookDao",BookDao.class);

甚至可以省略id号,直接按类型加载(如此使用要求类型唯一可查)

BookDao bookDao = ctx.getBean(BookDao.class);

而加载配置源的方法,则主要有两种:类路径加载,绝对文件路径加载

bean相关总结

bean其实就是对于项目中各种类的引用和加载,有业务逻辑类,操作类,web交互类等,汇总在一个配置文件中是比较方便调用的方式

依赖注入总结

常规类的依赖注入主要有两种:setter注入(set方法---property标签),构造器注入(constructor标签,避免了set方法)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值