发表于: 2018-04-26 17:28:33
1 664
今天完成的事情:
完成任务17的小部分内容:JdbcTemplate涉及到Spring的ioc操作,所以今天学习ioc的配置方式和注解方式
明天计划的事情:
明天学习用JdbcTemplate操作数据库
遇到的问题:
遇到2个报错:
1.class path resource [bean1.xml] cannot be opened because it does not exist。
找不到spring的配置文件,在群中问师兄得知是,maven环境下,spring的配置文件不能放在scr下,必须放 在资源文件夹resource下
2.java.io.FileNotFoundException: class path resource [b1.xml] cannot be opened because it does not exist
should start with lowercase letter less checks bean id to comply with recommended naming conventions
翻译结果是:应以小写字母开头检查bean ID以符合推荐的命名约定
这个是因为bean标签中的Id属性必须以小写字母开头
收获:
17.编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。
JdbcTemplate涉及到Spring的ioc操作。
Spring的两大核心:ioc、aop
Spring的ioc是控制反转:创建对象不使用new,而是把创建对象交给spring来配置
目的:减小类与类之间的耦合度。当一个类发生改变时,不需要修改用到这个类的类。只需要更改spring的配置文件就可以了
Spring配置的ioc操作有两种方式:配置文件方式、注解方式。
Spring的实现方法
1.创建配置文件.xml;
2.在.xml文件中配置需要用到的类;
3.在需要获得类的程序中加载配置文件,调用固定的方法来来获得对象
//加载spring的配置文件,根据bean1.xml中配置好的类来获得对象
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
//通过ApplicationContext的getBean方法获得对象(需要强转成目标类),括号中填配置文件中类的别名
ioc1 i1=(ioc1) context.getBean("ioc1");
第一个Spring的ioc程序
Spring 的ioc基于配置文件方式的操作
1.在IDEA中创建maven环境下的spring框架
参考资料:https://blog.csdn.net/icarus_wang/article/details/51414135
选择模板
2.在maven配置文件中添加依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
</dependencies>
3.在main文件下添加resource资源文件夹:在maven环境下用来存放配置文件等资料的
4.新建类ioc1
5.创建spring的配置文件bean1.xml
Id属性必须以小写字母开头
6.新建驱动类,并在类中通过spring的配置文件获得类ioc1
运行后,成功输出
bean中的属性scope属性可以用来设置配置作用范围:主要参数singleton、prototype
singleton(单例对象):不管创建多少个对象,实际上都是同一个对象
protype(多例对象):每次创建对象,都会产生一个新对象(默认)
更改bean.xml文件,设置成多例对象
修改驱动类程序
显示结果表明两个对象不是同一个对象
修改xml文件,将ioc1类修改成单例
显示结果表明两个对象地址相同,实际上是同一个对象
Ioc可以对配置的类实现属性注入
属性注入:在创建对象的同时给对象中的属性赋值
对象中的属性可以是基本类型,也可以是对象
创建一个ioc2的类
在ioc中添加ioc类属性和name属性,并添加他们的set方法(配置文件方式属性注入需要手动添加set属性方法)
修改.xml文件
运行后输出
Spring 的ioc基于注解方式的操作
注解方式:使用特殊标记实现配置类,注入属性的功能
1.创建.xml文件
2.创建Ioc2类,并注解该类
3.创建Ioc1类,注解该类,注解类中的Ioc2对象,用注解方式属性注入一个Ioc2的对象(注解方式不需要手动添加set属性方法)
4.创建启动类
运行输出
评论