【Spring】零基础快速学习与搭建Spring框架

  框架(framework),可以认为是某种应用的半成品,是一组组件,提供给开发人员完成自己的系统。如同别人已经搭建好了舞台,你只需要来表演就行,表演效果怎么样全靠自身功力。

  框架一般都是成熟的、稳健的,比如比较完整的结构、良好的扩展性等,可以处理系统很多细节的问题,助于代码的升级。

笔记大纲
  • Spring框架简介

  • 搭建Spring运行环境

    • 新建Java项目工程
    • 导入Jar包(5个)
    • 新建Spring-XML文件
    • 工程结构预览
  • Spring案例练手


1.Spring简介

Spring的官网:https://spring.io/

  (1)Spring是一个优秀的企业级开发开源框架;

  (2)Spring是一个IOC(DI和AOP容器框架,之前JavaWeb总结的Servlet也是一个容器;

  (3)Spring的六大优良特性 :

    ①非侵入式:基于Spring开发的应用中的对象可以不依赖与SpringAPI;

    ②依赖注入:DI(Depandecy Injection)是IOC(反转控制)最经典的实现;

    ③面向切面编程:AOP(Aspect Oriented Pragramming);

    ④容器:Spring是一个容器,它包含、管理应用对象的生命周期;

    ⑤组件化:Spring实现了简单的组件配置组合成一个复杂的应用,可使用XML和Java注解组合对象;

    ⑥一站式:在IOC和AOP的基础上可整合各种企业应用的开源框架和优秀的第三方类库。

  (4)Spring模块示意图

在这里插入图片描述

2.搭建Spring运行环境
2.1.SST工具新建Java工程

  命名符合Java规范,新建一个配置文件夹,用于存放XML等文件,新建一个Jar文件夹,用于存放用于存放第三方各种Jar。

在这里插入图片描述

2.2.导入Jar包

Jar包套装:核心包4个+日志包1个,注意要选中导入Jar进行Bulid Path操作!

Spring自身的Jar与额外的logging-Jar,在工程下自定义新建文件加lib,加入:

  ①spring-beans-4.0.0.RELEASE.jar

  ②spring-context-4.0.0.RELE2ASE.jar

  ③spring-core-4.0.0.RELEASE.jar

  ④spring-expression-4.0.0.RELEASE.jar

  ⑤ commons-logging-1.1.1.jar

2.3.新建Spring-XML文件

  开发工具STS/Eclipse工具中点击 File->New->选择Spring Bean Configuration File,自定义命名,例如applicationContext.xml

2.4.工程结构预览

在这里插入图片描述

3.SpringDemo练手
3.1.创建Student类

这里再也不需要我们去new对象,旨在使用Spring创建对象,为属性赋值!

package com.codinglin.helloworld.beans;
public class Student {
	private Integer stdId;  //学号
	private String  stdName; //学生姓名
	private String desc;//描述
	private String gender;//性别
	public Integer getStdId() {
		return stdId;
	}
	public void setStdId(Integer stdId) {
		this.stdId = stdId;
	}
	public String getStdName() {
		return stdName;
	}
	public void setStdName(String stdName) {
		this.stdName = stdName;
	}
	public String getDesc() {
		return desc;
	}
	public void setDesc(String desc) {
		this.desc = desc;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "Student [stdId=" + stdId + ", stdName=" + stdName + ", desc=" + desc + ", gender=" + gender + "]";
	}
    //回顾:为什么使用包装类?因为包装类(Integer)可以接受null值!
}
3.2.配置Spring-XML文件

注意:

  使用bean元素定义个一个由IOC容器创建的对象。

  Spring容器底层通过反射创建对象。

  DI(依赖注入)就是給属性赋值 :方式一:通过setXxx()赋值、方式二通过构造器类赋值。

<?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">
    <!-- 让Spring容器管理Student类型:
        id:容器创建好的对象的唯一标识   
        class:容器管理的类的全限定名(全类名                              
    -->
    <!-- 通过set方法进行注入-->
    <bean id="studentId" class="com.codinglin.helloworld.beans.Student">
       <!--给对象的属性赋值,name中的值必须与类中的set方法后面的名字一致,value是给属性赋值   -->     
    	<property name="stdId" value="666"></property>
    	<property name="stdName" value="林大侠"></property>
    	<property name="desc" value="技术博主"></property>
    	<property name="gender" value=""></property>
    </bean>
</beans>

3.3.测试类
package com.codinglin.helloworld.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.codinglin.helloworld.beans.Student;
public class Main {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		//创建一个Spring容器对象,底层是一个对象工厂
		    //两种实现ApplicationContext、BeanFactory
		    //ClassPathXmlApplicationContext对应类路径下的XML格式的配置文件
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		//方式一:从容器中获取对象    根据id+强转
		/*Student student = (Student)context.getBean("studentId");*/
		//方式二:从容器中获取对象   根据对象类型(管理容器有两个,会抛异常)
		/*Student student = context.getBean(Student.class);*/
		//方式三:从容器中获取对象 根据对象类型
		Student student = context.getBean("studentId",Student.class);
		System.out.println(student);
	}
}

3.4.输出结果

在这里插入图片描述


 ☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!

☞本人博客:https://coding0110lin.blog.csdn.net/  欢迎转载,一起技术交流吧!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值