目录
数据源对象管理
第三方资源配置管理
例:通过德鲁伊连接数据库
先在pom.xml文件下导入spring和druid坐标
再在配置文件中配置数据库的连接
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</bean>
最后在运行文件将得到的连接对象输出:
public class App
{
public static void main( String[] args )
{
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource dataSource=(DataSource) ctx.getBean("dataSource");
System.out.println(dataSource);
}
}
运行结果:
加载properties文件
容器
创建容器
获取bean
容器类层次结构图
BeanFactory初始化
通过ApplicationContext创建的bean对象,也可指定lazy-init为true达到延迟加载的效果。
容器相关
bean相关
依赖注入相关
注解开发
注解开发定义bean
演示:
xml文件中配置信息:
BookServiceImpl中代码:
@Component("bookService")
public class BookServiceImpl implements BookSercice {
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void save(){
ApplicationContext atx=new ClassPathXmlApplicationContext("applicationContext.xml");
bookDao=(BookDao) atx.getBean("bookDao");
System.out.println("BookService action!");
bookDao.save();
}
}
BookDaoImpl中代码:
@Repository(BookDao)
public class BookDdaoImpl implements BookDao {
public void save(){
System.out.println("BookDao action");
}
}
App中代码:
public class App {
public static void main(String[] args) {
ApplicationContext atx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookDao bookDao = atx.getBean("bookDao", BookDao.class);
BookSercice bookSercice = atx.getBean("bookService", BookSercice.class);
bookSercice.save();
System.out.println(bookDao);
}
}
结果:
纯注解开发
bean管理
bean作用范围
bean的生命周期
演示:
BookDaoImpl类中的代码:
@Repository("bookDao")
@Scope("singleton") //单例
//@Scope("prototype") //非单例
public class BookDdaoImpl implements BookDao {
public void save(){
System.out.println("BookDao action");
}
@PostConstruct
public void init(){
System.out.println("BookDao run");
}
@PreDestroy //彻底销毁前执行的方法
public void destrop(){
System.out.println("BookDao destroyed");
}
}
App类中的main方法:
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
BookDao bookDao = ctx.getBean( BookDao.class);
BookDao bookDao1 =ctx.getBean(BookDao.class);
System.out.println(bookDao);
System.out.println(bookDao1);
ctx.registerShutdownHook();
}
运行结果:
依赖注入
加载properties文件
第三方bean管理
第三方bean注入
以上内容均学自b站黑马mysql课程