Spring学习1(Spring框架、Spring开发环境搭建)

一、Spring框架

1、Spring简介

(1)狭义的Spring

狭义的Spring指Spring框架(Spring Framework)。Spring框架是为了解决企业应用开发的复杂性而创建的一个分层的,面向切面与Java应用的一站式轻量级开源框架

Spring框架的核心是控制反转(IOC)和面向切面(AOP)

Spring框架的优势是分层架构,分层架构允许使用者选择使用哪一个组件,同时为JavaEE应用程序提供集成的框架。

(2)广义的Spring

广义的Spring是指以Spring框架为核心的Spring技术栈。包括Spring Data、Spring Boot、Spring Cloud等。

SpringBoot

  • 一个快速开发的脚手架
  • 基于SpringBoot可以快速的开发单个微服务
  • 约定大于配置

SpringCloud

  • SpringCloud是基于SpringBoot实现的

2、Spring优点

  • Spring是一个开源免费的框架
  • Spring是一个轻量级的、非入侵式的框架
  • 控制反转(IOC),面向切面编程(AOP)
  • 支持事务处理,对框架整合的支持
  • 松耦合,组件(Bean)之间依赖很松,模块可以轻松替换

3、Spring框架组成

Spring框架大概由20来个模块组成。这些模块可以分成几个大的层次:核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具和测试等。

在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能

4、IoC容器

Spring通过IoC容器来管理所有Java对象(也称bean)及其相互间的依赖关系。该容器的工作范围包括对应用程序的对象进行实例化、初始化、装配以及在对象的整个生命周期中提供其他的Spring功能

Bean:由Spring容器进行管理的对象。Spring容器先获取应用程序中编写的类并与配置元数据结合在一起,然后创建和装配Bean。在Spring中,Bean就是普通的Java类,由Spring IoC容器实例化、组装、管理。

 

(1)依赖注入(DI)和控制反转(IoC)

为了解决Java程序规模过大时,类之间耦合太紧密的问题,Spring框架就把创建类的行为从类中拿出来放到Spring框架里去做。

控制反转(Inversion of Control / IoC):本来由类控制其所依赖的类对象的创建,现在把创建动作放到Spring框架里了,由框架控制所有类对象的创建,这就是“控制反转”。(指new实例工作不由我们程序员来做而是交给Spring容器来做)

依赖注入(Dependency Injection / DI):框架创建了类所依赖的对象,然后把这些对象传给(注入)依赖它们的类,这就是“依赖注入”。

(2)IcO容器的主要任务

IoC容器根据XML文件、Java注释或Java config文件中的配置信息创建、装配、管理bean(普通Java类),spring应用只需声明一下所需的类(往往是父类,以便达到松耦合的目的)就可直接使用这些bean的功能。

  • 创建bean实例
  • 根据配置文件装配bean
  • 为bean设置初始化参数
  • 管理bean的生命周期

(3)Bean的配置方式

 Bean装配如上图所示:配置元数据为向Spring容器提供的装配信息;Spring容器首先获取应用程序中编写的类并与配置元数据结合在一起,然后创建和装配Bean。

Bean的配置信息包含以下内容:

  • 如何创建Bean
  • Bean的生命周期回调方法配置
  • Bean的依赖关系

Bean的配置方式有三种:

  • XML配置
  • 注解配置
  • Java配置

 

5、面向切面编程

面向切面编程(Aspect Oriented Programming/AOP):AOP的主要作用是,在不修改源代码的情况下,可以给目标类打补丁,让其执行补丁中的代码。

依赖注入/DI(控制反转/IOC)与 面向切面编程/AOP都是基于Java的反射机制。

 

二、开发环境搭建

1、安装eclipse

2、安装Spring Tool Suite(STS)

在基于Eclipse的基础上,spring提供了针对Spring开发的Spring Tool Suite(STS)集成开发工具,通过该工具,可以很轻易地生成一个spring的工程,比如web工程,工程里的配置文件都会自动为你生成。

打开安装好的eclipse,点击菜单栏Help ,Eclipse Marketplace…打开Eclipse市场,搜索“spring tools”,找到Spring tools 4安装。

 点击confirm

三、创建一个Spring应用

1、打开Eclipse

File-New-Maven Project

 

 创建之后工程的目录结构如下所示:

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.herry.demo</groupId>
  <artifactId>Spring-helloworld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>

    </dependencies>
</project>

2、添加spring依赖库

修改pom.xml文件,引入spring-core、spring-beans、spring-context三个模块。

3、添加代码

(1)在工程下添加名为com.herry.demo的包

(2)创建Bean类

创建位置如图所示:

 Customer.java的代码如下:

package com.herry.demo;

public class Customer {
	    String name; 

	    public String getName() { 
	        return name; 
	    }

	    public void setName(String name) { 
	        this.name = name; 
	    }

	    public void displayInfo() { 
	        System.out.println("Hello: "+ name); 
	    } 
}

(3)添加Bean的xml装配文件

 application.xml的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="customerBean" class="com.herry.demo.Customer"> 
        <property name="name" value="herry"></property> 
    </bean>
</beans>

 <bean>为指定的类定义bean

<property>用于类属性设置,设置的属性值将由IoC容器赋值给类实例。

 (4)创建主类

package com.herry.demo;
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class Hello 
{
	 public static void main(String[] args) { 
	        ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
	        Customer customerBean = (Customer) context.getBean("customerBean"); 
	        customerBean.displayInfo(); 

	        ((ClassPathXmlApplicationContext) context).close();
	    } 


}

(4)编译运行

选择Hello.jaba ,右击-run as-Java application

 

 

 

 

参考:https://www.jianshu.com/p/d1d8dae75cd4

https://www.qikegu.com/docs/1479

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值