CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
参赛话题:Java学习记录
话题描述:可以记录一下平时学习Java中的一些知识点、心得、例题、常见的问题解决
Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)的容器框架。Spring框架运行在业务层的。
主要功能:
-
降低类之间的耦合度,实现软件各层之间的解耦。 根据xml配置管理和装配对象,避免硬编码造成的程序过度耦合。
-
根据xml配置帮助管理事务,开发者不需要编写事务控制代码,提高开发效率。
-
提供单例模式支持,开发者不需要自己编写实现代码。
-
提供了AOP支持,开发者很容易实现如权限拦截、运行期监控等功能。
-
提供了众多辅助类,能够方便应用的开发。如:JdbcTemplate、HibernateTemplate。
-
支持各种主流的应用框架,如:Hibernate、Struts2、MyBatis等,便于应用的开发。
官网:https://spring.io/projects/spring-framework
控制反转(Inversion of Control ,IoC):控制反转就是指控制权的反转。控制权由应用代码中转移到了外部容器。IoC可以看作是更高级的工厂模式。使用控制反转必使用接口:面向接口编程,这样才能解除类之间的耦合。
依赖注入(Dependency Injection,DI)是实现IoC的一种手段。容器负责对象的装配并把该对象通过JavaBean属性或者构造函数注入给需要的对象。有设值方法注入(Setter Injection)和构造器注入(Constructor Injection)两种方式。
首先spring既能应用在javase项目,也能应用在javaee项目,需要下载jar包。
IoC容器是Spring框架的核心,负责创建并装配对象和对象的整个生命周期。 被IoC管理的对象通常被称为Bean。
Spring框架中的BeanFactory接口描述了管理对象的工厂,即IoC容器。定义了获取对象的方法。
通常使用BeanFactory的ApplicationContext子接口作为Bean容器。接口包含了BeanFactory接口的所有功能,另外还提供了国际化支持、资源访问等功能。
可使用xml文件或注解进行Bean配置。通常配置文件名为:applicationContext.xml或beans.xml。
要使用IoC容器,涉及到的jar包有:beans.jar、context.jar、context.support.jar、core.jar、expression.jar、commons-logging.jar(依赖)
ApplicationContext接口的常用实现类:
FileSystemXmlApplicationContext : 通过配置文件的完整物理路径创建IoC容器。
ClassPathXmlApplicationContext 从类路径下查找xml配置文件来创建IoC容器。
WebXmlApplicationContext 适用于Web应用程序中,可以配合Servlet容器进行工作。
创建主配置文件,配置文件中主要配置Bean对象,通常需给出类名,根元素是
通过schema进行验证。
ApplicationContext ac = new ClassPathXmlApplicationContext(“beans.xml”);
从容器中得到bean且使用
ac.getBean(String name);
ac.getBean(Class requiredType);
getBean(String name, Class requiredType);
配置Bean
bean对象的创建、销毁都可交由IoC容器管理。
scope属性用来配置bean的作用范围。可取值:singleton和prototype
singleton:单例模式的bean默认在容器创建时被实例化然后被缓存,后续所有的请求返回的是同一个实例。可以配置bean元素的lazy-init属性来延迟到第一次获取bean时实例化。如果想让所有的bean都延迟初始化,可对beans根节点设置default-lazy-init属性。
prototype:每次从容器获取的bean都会创建一个新实例。
init-method和destroy-method属性配置bean的初始化方法和销毁方法。
构造函数注入(类中需定义对应的构造器)
使用参数名:
使用参数下标(0开始):
注:注入引用类型使用ref属性,注入值使用value属性或子元素。
属性注入(setter方法)
使用元素的name、value、ref属性实现,或value子元素。
如果要注入null则使用元素。
注入集合对象
自定义引用类型注入
引用已定义的bean。。也可以用子元素
使用内部bean实现。
拷贝dbcp2和pool的jar包
在beans.xml配置文件中进行配置。核心类是BasicDataSource类
注意:添加destroy-method属性。
也可在配置文件中将value属性值设置为${key}的形式,从.properties属性配置文件中获取对应的值。需要引入context命名空间。配置加载属性文件:
Druid是阿里巴巴开发的一个数据库连接池。是目前最好的数据库连接池。
导入druid的jar包
在beans.xml配置文件中配置,核心类DruidDataSource,要配置init-method和destroy-method。
CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)