3. Spring
3.1 简介
Spring就是轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
3.2 好处
1.Spring就是一个大工厂,专门负责生成Bean,可将所有对象,和依赖关系维护由Spring管理。(解耦)
2.Spring提供面向切面编程,可以方便的实现对程序进行拦截、运行监控等功能。(AOP编程)
3.只需要通过配置就可以对事务进行管理,而无需手动编程。(声明事务)
4.Spring对junit支持,可以通过注解方便的测试Spring程序。(方便测试)
5.Spring不排斥各种优秀的框架,其内部提供了对各种优秀框架的支持,比如Struts2、Hibernate、MyBatis等。(集成框架)
6.对java EE 开发中一些难用的API(JDBC、JavaMail)等都提供了封装 ,使这些API应用难度大大降低。(降低使用难度)
3.3 Spring体系结构
3.4 入门案例
3.4.1 创建Spring项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZiSEtEo-1628678672556)(C:\Users\Administrator.USER-20190513TB\AppData\Roaming\Typora\typora-user-images\image-20210811143458307.png)]
3.4.2 创建Book实例
package com.wyk.pojo;
public class Book {
private Integer id ;
private String bookName ;
private String author ;
public Book() {
System.out.println("This is Book constructor.");
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
System.out.println("This is Book setBookName().");
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
System.out.println("This is Book setAuthor().");
this.author = author;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", bookName='" + bookName + '\'' +
", author='" + author + '\'' +
'}';
}
}
3.4.3 修改配置文件spring-config.xml(注入Book实例)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="book" class="com.wyk.pojo.Book">
<property name="id" value="1" />
<property name="bookName" value="平凡的世界" />
<property name="author" value="路遥" />
</bean>
</beans>
3.4.4 编写测试类
package com.wyk.test;
import com.wyk.pojo.Book;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class testMain {
public static void main(String[] args) {
//查询类路径 加载配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml") ;
// 所有类的实例的创建都不需要应用程序自己创建,而是交给Spring容器来创建及管理
Book book = applicationContext.getBean("book", Book.class) ; // 声明方法1
Book book2 = (Book) applicationContext.getBean("book") ; // 声明方法2
System.out.println(book);
}
}
3.4.5 输出结果
3.4.6 包结构
果
[外链图片转存中…(img-2uElgvt2-1628678672558)]
3.4.6 包结构
[外链图片转存中…(img-EUneeAzM-1628678672560)]