Spring简介(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kaizuidebanli/article/details/83099705

一、Spring是什么?

  • Spring 是一个开源框架.
  • Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.
  • Spring 是一个 IOC(DI) 和 AOP 容器框架.
具体描述 Spring:
  • 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
  • 依赖注入(DI — dependency injection、IOC)
  • 面向切面编程(AOP — aspect oriented programming)
  • 容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
  • 框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
  • 一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)

二、Spring模块

在这里插入图片描述

三、Spring开发环境

把以下 jar 包加入到工程的中
在这里插入图片描述

Spring 的配置文件: 一个典型的 Spring 项目需要创建一个或多个 Bean 配置文件, 这些配置文件用于在 Spring IOC 容器里配置 Bean. Bean 的配置文件可以放在 classpath 下, 也可以放在其它目录下.

四、正常HelloWorld项目

(1)HelloWorld程序


public class HelloWorld {

    private String user;

    public HelloWorld() {
        System.out.println("HelloWorld's constructor...");
    }

    public void setUser(String user) {
        System.out.println("setUser:" + user);
        this.user = user;
    }

    public HelloWorld(String user) {
        this.user = user;
    }

    public void hello(){
        System.out.println("Hello: " + user);
    }
}

(2)HelloWorld程序测试

@Test
public void testHello() throws Exception {
    HelloWorld helloWorld = new HelloWorld();
    helloWorld.setUser("kaizuidebanli");
    helloWorld.hello();
} 

五、Spring开发HelloWorld项目

流程

1.配置bean
2. 创建 Spring 的 IOC 容器创建 Spring 的 IOC 容器
3. 从 IOC 容器中获取 bean 的实例
4. 使用 bean

(1)在xml中配置bean

<!-- 配置一个 bean -->
<bean id="helloWorld" class="atguigu.Spring.HelloWorld">
	<!-- 为属性赋值 -->
	<property name="user" value="Jerry"></property>
</bean>

(2)HelloWorld程序测试

@Test
public void testHello() throws Exception {
    HelloWorld helloWorld = new HelloWorld();
	//		helloWorld.setUser("Tom");
	//		helloWorld.hello(); 
		
	//1. 创建 Spring 的 IOC 容器
	ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		
	//2. 从 IOC 容器中获取 bean 的实例
	HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
		
	//根据类型来获取 bean 的实例: 要求在  IOC 容器中只有一个与之类型匹配的 bean, 若有多个则会抛出异常. 
	//一般情况下, 该方法可用, 因为一般情况下, 在一个 IOC 容器中一个类型对应的 bean 也只有一个. 
	//	HelloWorld helloWorld1 = ctx.getBean(HelloWorld.class);
		
	//3. 使用 bean
	helloWorld.hello();
} 

六、HelloWorld程序流程分析

在程序启动时,Spring会将xml文件中所有的bean对象均创建一个实例对象,并根据property对对象的属性调用set方法。

xml配置

<bean id="helloWorld" class="atguigu.Spring.HelloWorld">
    <property name="user" value="kaizuidebanli"/>
</bean>

测试:我们只创建 Spring 的 IOC 容器

@Test
public void testHello() throws Exception {
    HelloWorld helloWorld = new HelloWorld();
	
	//1. 创建 Spring 的 IOC 容器
	ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
} 

程序输出结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kaizuidebanli/article/details/83099705