Spring框架(1)

Spring是什么,做什么事情,使用有什么好处…

1、Spring是什么
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

通俗点说,spring是一个开源轻量级的一站式框架。

2、做什么事情

用来解决耦合问题。

3、Spring是一站式框架
(1) 表现层(文web层)、业务逻辑层(service层)、dao层
(2)Spring针对三层结构,在每一层都提供解决技术
web层:SpringMVC
Service:IOC
Dao层:jdbcTemplate
Spring框架(1)
4、入门案例
(1)导入Spring相应的jar包Spring框架(1)
(2)创建一个普通类。在这个类创建方法

	public class User{
		public void add(){
			System.out.println("add..................");
		}
	}

(3)创建Spring配置文件,在配置文件创建对象
Spring配置文件建议放在src下面,配置文件名称建议applicationContext.xml

在applicationContext.xml中配置对象
<!--配置对象-->
<bean id="user" class="com.xxx.helloworld.User"></bean>

5、Spring的IOC
(1)什么是IOC
控制反转,比如现在有一个类,创建这个类对象,使用普通方法new对象。使用IOC时候,不需要new对象,把对象的创建交给Spring完成。
*Spring把对象给我们创建出来了,我们直接使用就可以了
*上面的入门案例就是IOC实现
(2)IOC底层原理
XML(解析)、工厂模式。反射
首先解析xml文件,其次创建工厂类,在工厂类中通过反射创建类。
Spring框架(1)

6、BeanFactory
(1)BeanFactory:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。
(2)ApplicationContext:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactoy。

7、Bean管理
(1)
*xml配置文件方式实现
*基于注解实现
Spring创建对象
Spring注入属性
(2)使用bean标签配置,在bean标签里面使用属性

	<!--
	*id属性:唯一标识
	*class属性:类全路径名(包类路径)
	**在bean标签里面还有一个属性name,name属性和id属性是相同的
	***name属性类似于java里面过时方法,针对于之前struts1框架提供的
	***在id属性里面不能有特殊符号,在name属性里面可以有‘/’-->

(3)创建对象的时候,默认也是会执行无参构造器

8、DI:依赖注入,就是注入属性
(1)第一种方式:使用set方法注入
*定义属性,生成set方法

public class Book{
	private String bname;
	private String bauthor;
	
	//生成set方法
	public void setBname(String bname){
		this.bname = bname;
	}
	public void setBauthor(String bauthor){
		this.bauthor = bauthor;
	}
}

*在配置文件进行配置

<bean id="book" class="com.atguigu.di.Book">
	<!-- 注入属性,使用set方法注入 
		name:注入类属性名称
		value:注入属性值
	-->
	<property name="bname" value="易筋经"></property>
	<property name="bauthor" value="达摩"></property>
</bean>

(2)第二种方式:使用有参数构造注入
*创建属性,生成有有参数构造

	public class Book{
 		private String pname;
 		private double price;
		public Book(String pname,double price){
			this.pname = pname;
			this.price = price;
		}
 	}
  • 在配置文件中进行配置
  • Spring框架(1)
  • Spring框架(1)