门户网站建设收费怎么给自己的网站推广
第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)
1.Spring是什么?
 ①Spring是一款主流的java EE 轻量级开源框架。
 ②广义的Spring:Spring技术栈,Spring不再是一个单纯的应用框架,而是逐渐发展成由多个不同子项目组成的成熟技术。例如:Spring Framework、SpringMVC,SpringBoot等。
 ③狭义的Spring:特指Spring Framework。Spring框架是一个分层的、面向切面编程的java应用程序,有两个核心模块Ioc和AOP。
 ④Ioc:控制反转,把创建对象过程交给Spring进行管理。
 ⑤AOP:面向切面编程。不修改源代码进行功能的增强。
 2.Spring特点:
 ①方便解耦,简化开发。
 ②AOP编程的支持。
 ③方便程序的测试。
 ④方便集成各种优秀框架。
 ⑤降低Java API开发难度。
 ⑥方便进行事务操作。
 3.IOC容器:
 (1)什么是IOC:
 ①控制反转,把对象的创建和对象之间调用的过程,交给spring处理。
 ②使用IOC的目的:为例耦合度降低。
 (2)IOC底层原理:
 ①XML解析、工厂模式、反射。
 ②IOC容器底层就是对象工厂。
 ③spring提供IOC容器实现的两种方式(两个接口)
 BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用(加载配置文件的时候不会创建对象,在获取/使用对象的时候才去创建对象)。
 ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用(加载配置文件的时候就会把在配置文件中的对象创建)。
 ④ApplicationContext接口实现类:
 FileSystemXmlApplicationContext和ClassPathXmlApplicationContext
 
4.IOC操作bean管理:
 ①bean管理指的是两个操作:spring创建对象;spring注入属性。
 ②bean管理操作有两种方式:基于XML配置文件方式实现;基于注解方式实现。
 5.IOC操作bean管理(基于XML方式):
 (1)基于XML创建对象:
 <bean id="user" class="spring1.User"></bean>
 
①在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建。
 ②在bean标签中有很多属性,介绍常用属性:
id属性:唯一标识
class属性:类的全路径(包和类的路径)
name属性:和id属性一样,name属性内容可以加特殊符号
 
③创建对象的时候,默认也是执行无参构造方法,完成对象创建。
 (2)基于XML方式注入属性:
 ①DI:依赖注入,就是注入属性。(DI是IOC中一种具体实现,称为依赖注入,就是注入属性。注入属性要在创建对象的基础之上注入)
 第一种方式:set方式注入。
 1.创建属性和属性对应的set方法;
	 //1.创建属性private  String bname;private String bauthor;//2.创建属性对应的set方法public void setBname(String bname) {this.bname = bname;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}
 
2.在spring配置文件配置对象创建,配置属性注入。
 <bean id="book" class="spring1.Book" ><!--使用property完成属性注入name:类里面的属性名称value:向属性注入的值--><property name="bname" value="java从入门到精通"></property><property name="bauthor" value="宋红康"></property></bean>
 
@Testpublic void testBook1(){//1.加载spring配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean1.xml");//2.获取配置创建的对象Book book = applicationContext.getBean("book", Book.class);System.out.println(book);book.testDemo();}
 
第二种注入方式:使用有参数的构造器注入。
 1.创建类,定义属性,创建属性对应有参的构造方法;
public class Orders {private String oname;private  String address;public Orders(String oname, String address) {this.oname = oname;this.address = address;}
}
 
2.在spring配置文件中配置。
<!--有参构造注入属性--><bean id="orders" class="spring1.Orders"><constructor-arg name="oname" value="电脑"></constructor-arg><constructor-arg name="address" value="中国"></constructor-arg></bean>
 
 @Testpublic void testOrders(){//1.加载spring配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean1.xml");//2.获取配置创建的对象Orders orders = applicationContext.getBean("orders", Orders.class);System.out.println(orders);orders.orderTest();}
