一创建项目,引入maven依赖
新建一个maven项目,选择maven-archetype-webapp
填写groupId和ArtifactId,点击next
发现新建的项目main下面没有java文件夹,那么,点击File -project Structure 在Module选项中 右边的mian下面新建文件夹,并且改成Source类型
引入maven依赖:
spring的依赖共有以下四个方面:
1)spring核心依赖
spring-core、spring-beans、spring-context
2)spring dao依赖(提供JDBCTemplate)
spring-jdbc、spring-tx
3)spring web依赖
spring-web、spring-webmvc
4)spring test依赖
spring-test
pom.xml文件如图:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.happy</groupId> <artifactId>sunshine</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>sunshine Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- spring版本号 --> <spring.version>4.3.7.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Spring依赖 --> <!-- 1.Spring核心依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- 2.Spring dao依赖 --> <!-- spring-jdbc包括了一些如jdbcTemplate的工具类 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <!-- 3.Spring web依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- 4.Spring test依赖:方便做单元测试和集成测试 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <finalName>sunshine</finalName> </build> </project>然后编写spring的核心配置文件applicationContext.xml(名字任意,习惯名称)
IoC控制反转的理解和实现
习惯上: 在src建立applicationContext.xml(位置:src目录或者 WEB-INF目录)web项目,就放在resources目录即可
xml文件头添加shema约束
<?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>将bean交给spring,那么就要在applicationContext.xml中添加配置,比如要将userService交给spring管理,那么就需要添加:
<?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"> <!-- 将userService交给Spring管理--> <bean name="userService" class="com.happy.service.Impl.UserServiceImpl"></bean> </beans>IOC容器装配Bean---基于注解的方式
一.在要管理的bean上加上注解@Component (Spring2.5以后引入)
二.在applicationContext.xml中开启注解开启和注解扫描(注解开启和注解扫描之后,扫描到的bean会被自动纳入Spring容器管理)
需要引入context名称空间,此时的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:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--<bean name="userService" class="com.happy.service.Impl.UserServiceImpl"></bean>--> <!--开启spring的注解功能,配置扫描包的时候,spring会自动开启注解功能,故此项可不配置--> <!--<context:annotation-config/>--> <!-- 配置bean组件扫描 此时会自动扫描base-package包以及子包下面含有@Component注解的bean,纳入spring容器管理--> <context:component-scan base-package="com.happy"/> </beans>其他注解:
//Spring3.0后,提供 @Value注解,可以完成简单数据的注入 @Value("sunny") private String userName//单独使用@Autowired 按照类型注入
@Autowired private UserService userService ;
//使用@Autowired + @ Qualifier 按照名称注入 @Autowired @Qualifier("userService") private UserService userService ;
//使用@Resource默认按照类型注入,加名字则按照名字注入 @Resource // @Resource(name="userService1") private UserService userService ;