欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring in action 读书笔记(第一章)spring环境

程序员文章站 2022-03-31 21:07:17
...

小菜鸟学习spring,最近在啃 Spring IN ACTION ,中文版书名为spring实战,本书被大多数人点赞和好评。为了提高学习效果,特此做一个简单的笔记以便温习回顾,如有错误或者您有更好的建议与意见烦请指正指导。

第一章大致讲解了一下spring的基础概念和核心功能,即IOC和AOP,以及上下文和bean容器以及bean的生命周期等概念,并简单介绍了spring框架的各个模块,以及spring框架版本的新功能等。

第二章说的是bean的装配可选方案有以下三种

  • 在xml文件中进行显式配置
  • 在java中进行显式配置
  • 隐式的bean发现机制和自动装配

结合书中的代码片段和讲解,我自己写了demo测试

首先搭建编程环境:

编译工具为spring tool suit 简称sts,使用maven进行项目管理,创建spring的quickstart项目,目录结构如图所示

Spring in action 读书笔记(第一章)spring环境

ps:新建的项目中获取没有src/main/resources这个source fold ,新建一个即可。

1.项目创建完成后,搭建spring环境

引入pom依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.lujx</groupId>
	<artifactId>practice</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>practice</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>2.13.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.3.14.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.9.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.3.14.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>1.8.10</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.10</version>
		</dependency>
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>jsr250-api</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>com.github.jsr-330</groupId>
			<artifactId>core</artifactId>
			<version>1.4.0</version>
		</dependency>
		<dependency>
			<groupId>com.github.stefanbirkner</groupId>
			<artifactId>system-rules</artifactId>
			<version>1.16.0</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

2.创建application.xml配置文件

创建该配置文件的最直接的方式就是直接新建一个xml文件命名为application.xml,然后手动添加命名空间和beans根节点,这里介绍另外一种创建方式,由于我使用的IDE是STS,这个是spring官方提供的IDE,创建流程是file-->new-->Spring Bean Configuration FIle,这里可以勾选所需的命名空间,不用再去苦逼的找文档然后复制粘贴,如下图所示,勾选之后点击finish即可。

Spring in action 读书笔记(第一章)spring环境

3.验证环境

编写测试代码,验证spring环境是否搭建成功

在src/main/java资源文件夹下创建一个类,为了开发规范,建议写上包名,例如,创建BraveKnight类,该类是实现了Knight接口,不多说直接上代码


package org.lujx.chapter1.knights;
public interface Knight {
	void embarkOnQuest();
}

 

public class BraveKnight implements Knight{
	public void embarkOnQuest() {
		System.out.println("embarkOnQuest");
	}
}

配置application.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" 
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:c="http://www.springframework.org/schema/c" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:lang="http://www.springframework.org/schema/lang" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
		http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
	<bean id="braveKnight" class="org.lujx.chapter1.knights.BraveKnight">
	</bean>
</beans>

编写测试类

在src/main/resources创建测试类,如图所示

package org.lujx.test.chapter1;

import org.junit.Test;
import org.lujx.chapter1.knights.BraveKnight;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test4CSDN {

	ApplicationContext ctx =new  ClassPathXmlApplicationContext("application.xml");
	
	@Test
	public void testBraveKnight(){
		BraveKnight braveKnight = (BraveKnight) ctx.getBean("braveKnight");
		braveKnight.embarkOnQuest();
	}
}

测试成功

Spring in action 读书笔记(第一章)spring环境