第一步New--->project
第二步,点击NEXT就可以等待jar包导入
第三部,创建两个类作为测试,Alt+Insert创建新类,sout创建输入语句,psvm创建主方法
运行结果
上面的测试时没有用SPRING框架的,只是用了set方法注入进入的参数值。下面我们来试试采用SPRING框架的程序
AOP和IOC是spring的核心内容
我们将类注入到spring-config.XML里面,通过IOC容器对象拿类的对象,就不要像以前一样用到了在new一个类对象。
<?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="helloword" class="HelloWord">
<property name="name" value="zhanglu"></property>
</bean>
</beans>
public class Main {
public static void main(String[] args) {
//创建SpringIOC容器对象
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
//从IOC容器里面获取BEAN实例
HelloWord helloWord=(HelloWord) context.getBean("helloword");
helloWord.sayHello();
}
}
以上就是利用了spring框架的第一个程序。在创建IOC容器对象的时候会自动的调用HelloWord类的构造器来对容器里面的bean初始化,然后找到bean里面的name对应的方法进行调用。
那这个IOC容器有什么好处呢,假设有两个类A,B我们要将A的对象赋值给B,通常我们这样写
A a=new A();
B b=new B();
b.set(a);
现在我们在容器里面就给A和B建立关系,只需B b=new B()即可。这里才采用了IOC容器。这个容器的前生分为三次层次
1)分离接口与实现,我有一个服务类,用来打印报表,我可能打印的是pdf的,也可能是html的,pdf与html是一个报表接口的实现类,我的服务类在打印报表的时候就需要知道报表的这三个类,这个类之间的耦合度就变大了。
2)工厂设计模式:我们给报表实现类弄一个工厂类,工厂负责生成接口的实现类,服务类就只需知道工厂类和接口类
3)控制反转:我只需知道接口,以前的工厂类就会自动把我要的注入给我