什么是控制反转
应用本身不负责对象的创建,依赖对象的创建及维护是由外部容器负责
这样控制权由应用转移到了外部容器,控制权的转移就是所谓反转。
依赖注入
在运行期,由外部容器动态的将依赖的的对象注入到组件中
好处
1、降低组件之间的耦合度,实现软件各层之间的解耦
Controll--------Service----------Dao
2、可以使用容器提供的众多服务
事物管理服务 JMS服务 Spring core服务 持久化服务等
3、提供单例模式,开发人员不再需要在自己编写实现代码
4、容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能
5、容器提供的众多辅助类,使用这些类能够加快应用的开发,如JdbcTemplate、HiberateTemplate
6、对于主流的应用框架提供了集成支持,如Hiberate、Jpa Struts等
实例化Spring容器的两种方法
方法一:
在类路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new
String[]{"beans.xml"});
ApplicationContext ctx = new FileSystemXmlApplicationContext(new
String[]{"d:\\beans.xml"});受操作系统影响
JavaBean就是一个普通的类,之所以叫javabean类只是一个形象的叫法
,只是这个类必须是具体的(不是借口和抽象的)和public,并且具有
无参数的构造器,一般来说每个成员都对应一个getter和setter方法,在
Jsp中使用JavaBean类,可实现Html与Java代码的分离,使Jsp更易于开发和维护,是一个实现了某个功能并且可以重复使用的Java类
由于spring能个管理对象,在xml文件中需要将使用spring容器管理的类添加到配置文件中,在配置bean时,如果id属性来表明bean类的唯一性,如果id属性包含特殊字符那么需要用name属性来唯一的标示该bean类,用class属性指定该bean类,这样改bean类就可以有spring创建和维护,只需直接获取类,通过cte.getBean("id的值")