Spring介绍和初步使用

  1. Spring简介
    (1)框架 : 高度抽取可重用代码/半成品软件
    (2)容器(可以管理所有的组件(类) 框架 核心关注:IOC(DI)和AOP容器框架.
    雷丰阳文档
    (3) Spring的framework
    一组
    在这里插入图片描述
    Test: 单元测试功能

spring-test-4.0.0.RELEASE.jar

Core Container: 核心容器ioc 黑色为这部分功能为那些jar包组成

spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar

AOP+Aspect:面向切面

spring-aop-4.0.0.RELEASE.jar

数据访问/访问数据库

spring-jdbc-4.0.0.RELEASE.ja r
spring-orm(object-relation-mapping)-4.0.0.RELEASE.ja
spring-ts-4.0.0.RELEASE.jar(事务)

集成

spring-oxm(object xml mapping)-4.0.0.RELEASE.ja
spring-jms-4.0.0.RELEASE.jar

web:Spring开发web应用

spring-websocket-4.0.0.RELEASE.ja
spring-web-4.0.0.RELEASE.jar(原生web)
spring-webmvc-4.0.0.RELEASE.jar(开发web项目)
spring-webmvc-portlet-4.0.0.RELEASE.jar(开发web应用的组件集成)
在这里插入图片描述

ioc: inversion of Control 控制反转

控制(资源的获取方式

(1)主动式:new–要资源自己创立)

(2)被动式:资源的获取都是容器来创建设置)
在这里插入图片描述

容器:管理所有组件(有功能的类),主动的new资源变为被动的接受资源

DI(dependency injection )依赖注入
容器能知道哪个组件(类)运行的时候,需要另外一个类(组件) ; 容器通过反射的形式,将容器中准备好的BookService对象注入(利用反射给属性赋值)到BookServlet中;

  1. 初步使用Hello World

现在:在容器里面注册组件

框架编写流程:

(1)导包 (加入测试的包 bean/core/ep)

(2)写配置
spring的配置文件中,集合了所有ioc容器管理的所有组件
创建spring bean configuration file 配置文件

(3)测试

eg:helloworld — 测试容器功能
配置ioc.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">
	<!--  组测一个person对象,spring会自动创建 -->
	<!--  一个Bean标签可以注册一个组件(对象、类)
	class写要注册的组件的全类名
	id:这个对象的唯一标识
	-->
	<bean id="person1" class="com.bean.person">
	<!--使用property标签为Person对象的属性赋值-->
		<property name="lastname" value="张三"></property>
		<property name="age" value="18"></property>
		<property name="email" value="36023"></property>
		<property name="gender" value="男"></property>
	</bean>
</beans>

person.java

package com.bean;

public class person {
	private String lastname;
	private Integer age;
	private String gender;
	private String email;
	
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "person [lastname=" + lastname + ", age=" + age + ", gender=" + gender + ", email=" + email
				+ ", getLastname()=" + getLastname() + ", getAge()=" + getAge() + ", getGender()=" + getGender()
				+ ", getEmail()=" + getEmail() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
				+ ", toString()=" + super.toString() + "]";
	}
	/**
	 * @return the lastname
	 */
	public String getLastname() {
		return lastname;
	}
	/**
	 * @param lastname the lastname to set
	 */
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
	/**
	 * @return the age
	 */
	public Integer getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(Integer age) {
		this.age = age;
	}
	/**
	 * @return the gender
	 */
	public String getGender() {
		return gender;
	}
	/**
	 * @param gender the gender to set
	 */
	public void setGender(String gender) {
		this.gender = gender;
	}
	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}
	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}
	

}

测试

package com.bean.test;
import static org.junit.Assert.*;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.bean.person;
import org.junit.Test;

public class ioctest {
	/*
	*从容器中拿到这个组件
	*/
	@Test
	public void test() {
		//ApplicationContext. 代表ioc容器
		//当前应用的xml配置文件在
		//ioc.xml 清单
		//根据spring的配置文件得到ioc容器对象
		ApplicationContext ioc= new ClassPathXmlApplicationContext("ioc.xml");
		person bean = (person) ioc.getBean("person1");
		System.out.println(bean);
	}
}

在这里插入图片描述

总结

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值