工具: Intelij IDEA JDk1.8 以及maven
Group Id 和 Artifact Id 被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到 maven 本地仓库去,你想要找到你的项目就必须根据这两个 id 去查找。
Group Id 一般分为多个段,这里只说两段,第一段为域,第二段为公司名称或者团队名称。域又分为 org、com、cn 等等许多,其中org 为非营利组织,com 为商业组织。举个 apache 公司的 Tomcat 项目例子:这个项目的 Group Id 是 org.apache,它的域是 org(因为 Tomcat 是非营利项目),公司名称是 apache,Artigact Id 是 Tomcat。
比如创建一个项目,如果是自己练习,一般会将 Group Id 设置为 cn.姓名缩写,cn 表示域为中国,如果是公司项目(假设公司为百度),那么 Group Id 应该设置为 com.baidu。Artifact Id 为你要创建的项目名称,依照这个设置,包结构最好是 Group Id 或者 Group Id + Artigact Id 开头,如果有个包 student,那么它的全路径就是Group Id + (Artigact Id +) student。
1、新建project,选择maven,勾选Create from archetype(从架构中选择创建),选择maven-archetype-webapp
2、next 填写GroupId(项目包名路径),ArtifactId(默认为项目名称)
3、然后点击finish,先看看创建完成的项目,会在对应目录下面生成项目所在的文件目录
4、项目建好之后就是引入依赖
引入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文件
<groupId>com.gentleman.learn</groupId> <artifactId>springlearning</artifactId> <version>1.0-SNAPSHOT</version> <!-- 属性集合 --> <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>gentleman</finalName> </build>
5、配置文件
1)、spring的核心配置文件applicationContext.xml(名字任意,习惯名称),IoC控制反转的理解和实现,在src目录下建立applicationContext.xml(位置:src目录或者 WEB-INF目录)web项目,就放在resources目录即可
xml文件头添加shema约束(复制也可以)
在resources目录新建:ew--->XML-configureation-file--->spring config--->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>
2)、将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.gentleman.learn.service.impl.UserServiceImpl"></bean> </beans>
3)、IOC容器装配Bean---基于注解的方式
1.在要管理的bean上加上注解@Component (Spring2.5以后引入)
2..在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"> <!-- 将userService交给Spring管理--> <!--<bean name="userService" class="com.gentleman.learn.service.impl.UserServiceImpl"></bean>--> <!--开启spring的注解功能,配置扫描包的时候,spring会自动开启注解功能,故此项可不配置--> <!--<context:annotation-config/>--> <!-- 配置bean组件扫描 此时会自动扫描base-package包以及子包下面含有@Component注解的bean,纳入spring容器管理--> <context:component-scan base-package="com.gentleman"/> </beans>
其他注解:
3.1、Spring3.0后,提供 @Value注解,可以完成简单数据的注入
@Value("sunny")
private String userName
3.2、单独使用@Autowired 按照类型注入
@Autowired private UserService userService ;
3.3、使用@Autowired + @ Qualifier 按照名称注入
@Autowired
@Qualifier("userService")
private UserService userService ;
3.4、使用@Resource默认按照类型注入,加名字则按照名字注入
@Resource
// @Resource(name="userService1")
private UserService userService ;