(一) Spring 通用项目结构
1. spring完整包4.3.6下载
spring-framework-4.3.6.RELEASE-dist.zip
2. 创建项目
因为eclipse已经抛弃了,eclipse的操作方式与idea只有略微的差别,所以这里使用idea作为项目开发工具。
效果其实差不多
3. 新建libs
文件夹,放入核心jar包
我们使用 Core Container
下的核心包
这里使用的包有:
commons-logging-1.2.jar // 日志包,这个是单独的
spring-beans-4.3.6.RELEASE.jar // bean
spring-context-4.3.6.RELEASE.jar // context
spring-core-4.3.6.RELEASE.jar // core
spring-expression-4.3.6.RELEASE.jar // spEL
仔细观察,名称一一对应,如下图所示:
4. src
下创建applicationContext.xml
文件,用来配置spring容器
1) applicationContext.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">
</beans>
仔细观察得知:
其中xmlsn
是xml
的命名空间,可以让我们在后面使用标签如:
<bean id="user" class="com.dacangshu.pojo.User"/>
其中bean
就是默认命名空间下的导入对应上面的基础内容中的beans
:
xmlns="http://www.springframework.org/schema/beans"
spring-beans.xsd
文件中包括了对于xml的架构定义:
http://www.springframework.org/schema/beans/spring-beans.xsd
2) 好了,我们写一个bean试一试
在com.dacangshu.pojo
下创建User
类试试?它是空的,不需要写任何内容。
我们来看看,完整的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">
<bean id="user" class="com.dacangshu.pojo.User"/>
</beans>
注意:
<bean id="user" class="com.dacangshu.pojo.User"/>
5. 创建启动类
package com.dacangshu;
import com.dacangshu.pojo.User;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author dacangshu
* @date 2021/5/11 13:34
*/
public class BootStrap {
public static void main(String[] args) {
// 创建上下文context对象,使用 ClassPathXmlApplicationContext
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 从容器中获取id为user的对象
User user = (User) context.getBean("user");
// 输出
System.out.println(user);
}
}
看! 它开始工作了!
com.dacangshu.pojo.User@561b6512
说明:
-
ClassPathXmlApplicationContext
代表加载代码src
目录下的文件,"applicationContext.xml"
代表src
下的"applicationContext.xml"文件 -
User user = (User) context.getBean("user");
可以用它代替// 从容器中获取id为user的对象 User user = context.getBean("user", User.class);