上海易雅达网站建设公司怎么样,定安免费建站公司,物联网应用技术就业方向,查看网站开发目录 1 什么是spring框架 2 spring框架的特点 3 spring容器 3.1 什么是spring容器 3.2 spring容器创建对象的编程步骤 3.4 spring容器创建对象的方式 3.5 bean元素的几个重要属性 4 IOC 4.1 什么是IOC 4.2 什么事DI 4.3 DI的三种方式 1 什么是spring框架 是一个开源的用来简化企…目录 1 什么是spring框架 2 spring框架的特点 3 spring容器 3.1 什么是spring容器 3.2 spring容器创建对象的编程步骤 3.4 spring容器创建对象的方式 3.5 bean元素的几个重要属性 4 IOC 4.1 什么是IOC 4.2 什么事DI 4.3 DI的三种方式 1 什么是spring框架 是一个开源的用来简化企业级应用开发的框架 2 spring框架的特点 2.1 简化开发 spring对一些常见的api比如jdbc做了封装使用这些封装之后的api,代码会大大简化。 比如使用springjdbc来访问数据库就不用考虑如何获取连接关闭连接等操作。 2.2 管理对象 spring可以帮我们管理对象之间的依赖关系这样一来 软件更容易维护。 2.3 集成其它框架 spring可以将一些框架集成进来更方便使用这些框架。、 比如可以利用spring集成mybatismybatis是一个用 来访问数据库的框架这样mybatis用起来更加简单。 3 spring容器 3.1 什么是spring容器 是spring框架当中的一个核心模块用来管理对象。 3.2怎么利用 spring容器 来创建对象 3.2.1 创建一个 maven项目 》记得让maven项目中出现 web.xml 这个配置文件 -- 还记得咋整吗 3.2.2 导包 spring-webmvc -- 启动 spring容器 时需要用到 junit -- 进行单元测试时需要用到 3.2.3 启动 spring容器 》添加一个 spring容器 配置文件 例给Student类配置bean只需在spring的配置文件中添加 bean idstu classtest.Student/bean id 必须要保证唯一 class就是需要配置bean的类名但是必须在前面加上 包名. 》利用 ApplicationContext 的实现类 ClassPathXmlApplicationContext 去启动容器 3.2.4 利用 getBean(String name, ClassT requiredType) 来实例化对象 注意spring容器会利用相关类的无参构造器去创建实例所以相关类中必须要有无参构造器否则会报错“找不到无参构造器” 3.3 注意 spring容器一旦启动就会在 堆 中将所有配置了 bean 的类创建好一个实例 1 package test;2 3 import java.io.Serializable;4 5 public class Student implements Serializable {6 private Integer id;7 private String name;8 private String gender;9
10
11 public Student() {
12 super();
13 System.out.println(New Student());
14 }
15 public Integer getId() {
16 return id;
17 }
18 public void setId(Integer id) {
19 this.id id;
20 }
21 public String getName() {
22 return name;
23 }
24 public void setName(String name) {
25 this.name name;
26 }
27 public String getGender() {
28 return gender;
29 }
30 public void setGender(String gender) {
31 this.gender gender;
32 }
33
34 public String toString() {
35 return Student [id id , name name , gender gender ];
36 }
37
38 } Student类 1 ?xml version1.0 encodingUTF-8?2 beans xmlnshttp://www.springframework.org/schema/beans 3 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance4 xmlns:contexthttp://www.springframework.org/schema/context 5 xmlns:jdbchttp://www.springframework.org/schema/jdbc 6 xmlns:jeehttp://www.springframework.org/schema/jee 7 xmlns:txhttp://www.springframework.org/schema/tx8 xmlns:aophttp://www.springframework.org/schema/aop 9 xmlns:mvchttp://www.springframework.org/schema/mvc
10 xmlns:utilhttp://www.springframework.org/schema/util
11 xmlns:jpahttp://www.springframework.org/schema/data/jpa
12 xsi:schemaLocation
13 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
14 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
15 http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
16 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
17 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
18 http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
19 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
20 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
21 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
22
23 bean idstu classtest.Student/bean
24
25 /beans test.xml配置文件 1 package test;2 3 import java.io.Serializable;4 5 import org.springframework.context.ApplicationContext;6 import org.springframework.context.support.ClassPathXmlApplicationContext;7 8 public class Test implements Serializable {9 public static void main(String[] args) {
10 ApplicationContext ac new ClassPathXmlApplicationContext(test.xml);
11 System.out.println(ac);
12
13 Student stu1 ac.getBean(stu, Student.class);
14 System.out.println(stu1);
15 }
16 } Test类 3.4spring容器 实例化对象的三种方法 3.4.1 利用无参构造器实现很重要 必须有无参构造器如果已经添加了有参构造器那么默认的无参构造器就会被覆盖;此时就需要手动添加一个无参构造器 3.4.2 利用静态工厂方法实现了解 3.4.3 利用实例化工厂方法实现了解 3.5 bean元素的几个重要属性 3.5.1 作用域 scope 属性 用来指定作用域 缺省值是 singleton(单例)如果值是prototype(原型)则可以创建多个对象否则不可以 我们一般使用 单例模式 就可以啦即默认值 3.5.2 生命周期 初始化 init-method属性指定初始化方法 销毁 destroy-method属性指定销毁方法 只有作用域为单例的 bean, 销毁方法才有效 必须使用这个spring容器接口AbstractApplicationContext 3.5.3 延迟加载 默认情况下当 spring容器 启动之后会将所有作用域为单例的 bean 都创建好 lazy-init属性指定是否延迟加载值为 true 时延迟加载(一般不用延迟加载) 4 IOC(Inversion Of Controll 控制反转) 4.1 什么事IOC 对象之间的依赖关系交给容器来管理。 4.2 什么是DI (Dependency Injection 依赖注入) 容器通过调用set方法或者构造器来建立对象之间的依赖关系 注IOC是目标而DI是手段 4.3DI 注入的两种方式 4.3.1 利用 set 方法完成依赖注入掌握 注入类中必须有一个成员变量该成员变量的类型必须是被依赖注入的类 注入类中必须实现需要注入的那个成员变量的 set 方法 set 方法进行依赖注入时在配置文件中用到的是 property标签如果需要注入的类中有有参构造器那么必须实现无参构造器因为有参构造器会覆盖无参构造器注意菜鸟一般吧无参构造器和有参构造器都实现 注意注入类中那个成员变量的类型 一般都设定为被注入类的一个接口这样有利于今后进行维护 利用 property标签实现依赖注入 property namestu refstudent01/property name需要依赖注入的成员变量 ref需要依赖注入类的id属性值 图解创建A的实例而且B是注入到A中的B类中必须实现无参构造器A中必须添加一个类型为B的成员变量而且还必须为该成员变量实现set方法在spring配置文件中配置A和B的bean而且在A的bean中还要利用property标签来实现B的依赖注入 4.3.2 利用有参构造器完成依赖注入掌握 这里的构造器是有参构造器但是它的参数这是你需要注入的参数名不包含其他的 利用constructor-arg标签实现依赖注入 constructor-arg index0 refb1/ index有参构造器中参数的位置从0开始 ref依赖注入类的id属性值 图解创建A的实例而且B是注入到A中的B类中必须实现无参构造器A中必须添加一个类型为B的成员变量为A添加一个有参构造器而且该有参构造器的参数只是你要注入的那个成员变量不包含其他的而且该有参构造器任然会覆盖无参构造器所以如果想要使用无参构造器就必须先实现无参构造器在spring的配置文件中配置A和B的bean而且还需要用constructor-arg标签实现B的依赖注入 4.3.3 自动装配一般不用 注意依赖注入一般都由注释实现 源代码链接点击前往转载于:https://www.cnblogs.com/NeverCtrl-C/p/6849543.html