idea创建Spring项目
Spring描述
1、轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
2、依赖注入(DI — dependency injection、IOC)
3、面向切面编程(AOP — aspect oriented programming)
4、容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
5、一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)
IntelliJ IDEA创建一个简单的Spring项目
1、创建一个New Project
2、为项目起名
3、文件根目录下创建Spring的配置文件(也可直接勾选第一张图中Create empty spring-config.xml 直接生成配置文件。)
项目目录结构如下:
3. spring框架的初次使用
国际惯例:Spring_HelloWorld
创建一个HelloWorld类,有一个name属性,还有一个sayHello的方法,还有一个setter方法用来设置name属性
package com.domain.first;
/**
* @ClassName HelloWorld
* @Description TODO
* @Author DELL
* @Date 2019/1/11 11:57
* @Version 1.0
*/
public class HelloWorld {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sayHello() {
System.out.println("Hello"+name);
}
}
1、不使用spring框架之前,写一个Main方法实例化HelloWorld,调用sayHello这个方法:
运行:
2、使用Spring框架配置文件
在spring-config.xml中增加以下配置
<bean id="helloWorld" class="com.domain.first.HelloWorld">
<property name="name" value="HelloWorld"></property>
</bean>
再看看Main函数中如何调用HelloWorld.sayHello()方法
输出结果:
细心的同学可以发现两次虽然都输出了Hello橙留香,但是好像多了许多其他的东西。这些其实是Spring输出的日志。
我们明明没有创建HelloWorld的实例对象,只是配置了下Spring的配置文件,怎么就能得出正确的结果呢,这是因为我们Spring的IOC容器,我们只需要告诉Spring我们需要什么,对于对象的创建和管理Spring自己会帮我们实现,我们只需要在需要时再从IOC容器中获取就行了。那么到底是什么时候new的对象呢?
我们先把Main函数中的获取Bean实例和调用实例方法的代码注释掉,只创建IOC容器,看看Spring会帮我们干什么:
另外我们在实体类写一个无参构造器在无参构造器和setter方法中各打印一段话:
运行结果:
可以看到:Spring直接帮我们完成了创建HelloWorld的实例对象,并且设置了对象的name属性。我们要做的只是去调用对象的sayHello()方法。那么IOC容器到底是如何创建HelloWorld对象的呢?下次在写!