spring概述
- Spring是一个IOC和AOP容器的免费开源轻量级框架,提供了事务的支持,同时也整合了其他框架。
- IOC即控制反转,是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。
- AOP即面向切面,是非侵入式的。
快速上手
利用maven导入对应的的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
构建一个测试类,必须要包含set方法,IOC属性值除了构造器就是set注入
public class Hello {
private String str;
public Hello() {
}
public Hello(String str) {
this.str = str;
}
public void setStr(String str) {
this.str = str;
}
}
对应bean.xml文件内容,一个bean就是一个new出来的实例,默认是无参构造出来,默认是作用域是单例,下面scope属性可以设置, id是自己去的名字,class表示要new的对象,property表示要注入属性,用的是set方法注入,constructor-arg 表示用构造方法生成类变量。
<?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:c="http://www.springframework.org/schema/c"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloarg" class="com.hys.pojo.Hello" scope="singleton" >
<constructor-arg name="str" value="kokokoko"/>
</bean>
<bean id="helloImple" class="com.hys.service.helloImple">
<property name="hello" ref="hello"/>
</bean>
</beans>
测试实现,首先需要通过上面写的例子作为参数,生成spring里的上下文对象,从而获取bean对象
public class Mytest {
public static void main(String[] args) {
//ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
context.getBean("helloarg")
context.getBean("helloImple")
}
}