修改网站空间服务器密码,百度推广代理商赚钱吗,wordpress 评论验证码 插件,互联网行业公司目录#xff1a; 1.Spring框架最基本、最核心的jar包2.Spring的入门程序3.依赖注入3.1 依赖注入的概念3.2 依赖注入的实现方式 1.Spring框架最基本、最核心的jar包 Spring是一个轻量级框架#xff0c;Spring最基本、最核心的的jar包括 : beans、context、core、expression。 … 目录 1.Spring框架最基本、最核心的jar包2.Spring的入门程序3.依赖注入3.1 依赖注入的概念3.2 依赖注入的实现方式 1.Spring框架最基本、最核心的jar包 Spring是一个轻量级框架Spring最基本、最核心的的jar包括 : beans、context、core、expression。 spring-core.jar : 这个jar包 包含spring框架基本的核心工具类这是其他组件的基本核心。spring-beans.jar : 这个jar包是所有应用都能用到的它包含了访问配置文件、 创建和管理Bean (BeanFactory)、进行IOC/DI操作相关的类。 BeanFactory能添加和管理bean其底层是通过IOC 控制反转Inversion of ControlIoC的方式来管理bean。IOC是一种设计思想它将传统的程序中的对象依赖关系由直接依赖改为间接依赖实现了程序中各个模块的解耦降低了模块间的耦合度提高了代码的可维护性和可复用性。 ps : BeanFactory是属于旧方式的管理Bean的方式开发中一般使用ApplicationContext方式来替代BeanFactory来管理bean。spring-context.jar 这个jar包功能是建立在 core和beans 的基础上实现的他在基础的IOC功能上提供扩展服务此外还提供许多企业级服务的支持有邮件服务、任务调度、JNDI定位EJB集成、远程访问、缓存以及多种视图层框架的支持。 ps spring-context.jar 中的 ApplicationContext 能替代 BeanFactory 的添加和管理Bean开发中更常用。ApplicationContext管理bean底层也是IOC。spring-expression.jar : 主要用于在Spring应用中表达和解析表达式。该功能在Spring 3.0中引入。 2.Spring的入门程序 第一步、在DIEA中创建一个Java项目添加web功能模块。 第二步、在项目WEB-INF目录中创建lib文件夹存放Spring框架最基本核心的jar包让jar包生效。 获取spring框架基本核心jar包 第三步、创建UserDao接口 和 UserDaoImpl实现类 UserDao.java (接口) public interface UserDao {public void say();}UserDaoImpl.java (实现类) public class UserDaoImpl implements UserDao{ //实现类//重写实现类中的方法Overridepublic void say() {System.out.println(UserDaoImpl say hello World !);}
}第四步、创建ApplicationContext.xml其中添加和配置bean的信息 ( 用ApplicationContext的方式来在IOC容器中添加和管理bean) ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!-- 将UserDaoImpl这个类交给Spring容器管理即Beans管理让其创建对象的实例 --!-- 通过创建 ApplicationContext的方式来添加和管理Bean --bean iduserDaoImpl classcom.myh.ioc.UserDaoImpl/
/beans第五步、创建ApplicationContext获得bean创建测试类使用bean。 public class TestIoC {public static void main(String[] args) {//1.初始化spring容器加载配置文件ApplicationContext applicationContext new ClassPathXmlApplicationContext(ApplicationContext.xml);//2.通过容器获得userDaoImpl实例UserDaoImpl userDaoImpl (UserDaoImpl)applicationContext.getBean(userDaoImpl);//3.调用实例职工的say()方法userDaoImpl.say();}
} 3.依赖注入
3.1 依赖注入的概念 依赖注入( Dependency Injection, 简称DI) 与 控制反转 (loC) 的含义相同只不过这两个称呼是从两个角度描述的同一个概念 ( 不同角度下描述的同一概念 )。 当某个Java对象 (调用者) 需要调用另一个Java对象( 被调用者即被依赖对象)时。在 传统模式 下调用者通常会采用 “new被调用者” 的代码方式来创建对象如下图所示。这种方式会导致调用者 与 被调用者之间的 耦合性增加不利于后期项目的升级和维护。 在使用Spring 框架之后对象的实例不再由调用者来创建而是由Spring 容器来创建。 Spring容器会负责控制程序之间的关系而不是由调用者的程序代码直接控制。这样控制权由应用代码转移到了Spring容器控制权发生了反转这就是Spring的 控制反转 ( IOC )。 从Spring容器的角度来看Spring 容器负责将被依赖对象赋值给调用者的成员变量这相当于为 调用者注入了它依赖的实例这就是Spring的 依赖注入 ( DI) 如下图所示。 ps : 控制主导权有“调用者” 转变为 “spring容器”控制权发生转变叫“控制反转” ( IOC )控制反转的实际操作是 “依赖注入” ( DI )。 3.2 依赖注入的实现方式 依赖注入的作用就是在使用Spring 框架创建对象时动态右地将其所依赖的对象注入Bean组件中其实现方式通常有两种一种是属性 setter方法注入另一种是 构造方法注入具体介绍如下。 属性setter方法注入 : 最为常用 指Spring容器使用setter方法注入被依赖的实例对象。通过调用无参构造器或无参静态工厂方法实例化Bean后调用该Bean的setter方法即可实现基于setter方法的依赖注入。 构造方法注入 : 指Spring容器使用构造方法注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现每个参数代表着一个依赖。 属性setter方法注入的例子 UserService.java public interface UserDao {public void say();}UserServiceImpl.java public class UserServiceImpl implements UserService{//声明UserDao属性 (被调用者实例)private UserDao userDao; // userDao为 Bean实例中相应的 “属性名”//添加UserDao属性的setter方法用于依赖注入public void setUserDao(UserDao userDao){this.userDao userDao;}//实现接口中的方法Overridepublic void say() {//调用userDao中的say()方法this.userDao.say();System.out.println(userServiceImpl say hello World!);}
}ApplicationContext.xml 其中添加以下代码 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!-- 将UserDaoImpl这个类交给Spring容器管理即Beans管理让其创建对象的实例 --!-- 通过创建 ApplicationContext的方式来添加和管理Bean --bean iduserDaoImpl classcom.myh.ioc.UserDaoImpl/!-- 在IOC容器中创建一个id为“userServiceImpl“的Bean该Bean用于实例化 UserServiceImpl类的信息 --bean iduserServiceImpl classcom.myh.ioc.UserServiceImpl!-- 将id为userDao的Bean实例注入到 userService实例中 --!-- name : 表示Bean实例中相应的 “属性名”ref : 用于指定其属性值--property nameuserDao refuserDaoImpl/!-- property标签用于调用Bean实例中的 setUserDao() 方法完成属性赋值 --/bean/beansTestDI.java 测试类 public class TestDI {public static void main(String[] args) {//1.初始化spring容器加载配置文件ApplicationContext applicationContext new ClassPathXmlApplicationContext(ApplicationContext.xml);//2.通过容器获取UserService实例UserServiceImpl userServiceImpl (UserServiceImpl) applicationContext.getBean(userServiceImpl); //getBean()中参数为配置bean对应的id名//3.调用实例中的say()方法userServiceImpl.say();}
}以上为Spring容器 属性setter注入 的方式也是实际开发中最为常用的一种方式。