Spring-01-HelloWorld

什么是Spring?

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

为什么要使用Spring框架

  • Spring是一个开源的免费的框架(容器)
  • Spring是一个轻量的、非侵入式的框架
  • 控制反转(IOC)、面向切面编程(AOP)
  • 支持事务的处理、对框架整合的支持

总结:Spring就是一个轻量级的IOC和AOP框架

Spring的组成(七大模块)

在这里插入图片描述
1. Spring Core:

Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

2.Spring DAO:

DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。

3.Spring Context:

构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

4.Spring AOP:

Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

5.Spring Web:

Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

6.Spring ORM:

ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。其中包括JPA、JDO、hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。

7.Spring Web MVC:

Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。

Spring项目搭建(IDEA+Maven)

作者环境:JDK1.8.0、Maven3.6.3
如何安装Maven本地仓库这里就不多说了,很多的Blog都可以去查看。

  1. 创建一个Maven项目
    在这里插入图片描述
  2. 继上一步next,输入项目的名称和选择项目所在的位置,填好了我们就可以直接finish
    在这里插入图片描述
  3. 选择IDEA自带的导包
    在这里插入图片描述
  4. 导入Core Container相应的jar包,查找相应的包可以到MavenRepository
    在这里插入图片描述
  5. 创建HelloWorld实体类和Spring配置文件(applicationContext.xml)
public class HelloWorld {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

	<!--配置Bean
		id:bean的唯一标识符,不可重复
		class:实体类的全类名
		property :通过setter方法对注入
	-->
    <bean id="helloworld" class="com.gee.pojo.HelloWorld">
        <property name="message" value="Hello World"/>
    </bean>
</beans>

测试类

import com.gee.pojo.HelloWorld;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

    public static void main(String[] args) {
       /*
        *创建AplicationContext容器对象:
        * ApplicationContext:代表IOC容器
        * ClassPathXmlApplicationContext:当前应用的xml配置文件在ClassPath下
        * */
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //从IOC容器中获取Bean
        HelloWorld helloWorld = context.getBean("helloworld",HelloWorld.class);
        System.out.println(helloWorld.getMessage());
    }
}

运行结果:
在这里插入图片描述
在这几个步骤中,没有展示对应的截图,所以在这里放出一下我的项目结构截图(仅供参考)
在这里插入图片描述

注:博主也是第一次尝试着写blog,所以可能有很多不好的地方,还望大家谅解,如果有错误的地方希望大佬们能够不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值