SSM框架整合spring框架的搭建

Posted justn0w

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM框架整合spring框架的搭建相关的知识,希望对你有一定的参考价值。

 

SSM框架中的配置文件繁杂,此文帮大家疏通一下整体流程!

一 环境准备

1.1 创建maven工程

如图所示:

技术图片

 

 

输入一下信息:

groupId:组织名称

artifactId:项目名称

便可进入项目中

1.2添加本次项目需要的jar包

jar包版本号

<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<shiro.version>1.2.3</shiro.version>
<mysql.version>5.1.6</mysql.version>
<mybatis.version>3.4.5</mybatis.version>

对应的说明(坐标文件)

  1     <dependency>
  2       <groupId>junit</groupId>
  3       <artifactId>junit</artifactId>
  4       <version>4.11</version>
  5       <scope>test</scope>
  6     </dependency>
  7 
  8     <!-- spring -->
  9     <dependency>
 10       <groupId>org.aspectj</groupId>
 11       <artifactId>aspectjweaver</artifactId>
 12       <version>1.6.8</version>
 13     </dependency>
 14 
 15     <dependency>
 16       <groupId>org.springframework</groupId>
 17       <artifactId>spring-aop</artifactId>
 18       <version>$spring.version</version>
 19     </dependency>
 20 
 21     <dependency>
 22       <groupId>org.springframework</groupId>
 23       <artifactId>spring-context</artifactId>
 24       <version>$spring.version</version>
 25     </dependency>
 26 
 27     <dependency>
 28       <groupId>org.springframework</groupId>
 29       <artifactId>spring-web</artifactId>
 30       <version>$spring.version</version>
 31     </dependency>
 32 
 33     <dependency>
 34       <groupId>org.springframework</groupId>
 35       <artifactId>spring-webmvc</artifactId>
 36       <version>$spring.version</version>
 37     </dependency>
 38 
 39     <dependency>
 40       <groupId>org.springframework</groupId>
 41       <artifactId>spring-test</artifactId>
 42       <version>$spring.version</version>
 43     </dependency>
 44 
 45     <dependency>
 46       <groupId>org.springframework</groupId>
 47       <artifactId>spring-tx</artifactId>
 48       <version>$spring.version</version>
 49     </dependency>
 50 
 51     <dependency>
 52       <groupId>org.springframework</groupId>
 53       <artifactId>spring-jdbc</artifactId>
 54       <version>$spring.version</version>
 55     </dependency>
 56 
 57     <dependency>
 58       <groupId>junit</groupId>
 59       <artifactId>junit</artifactId>
 60       <version>4.12</version>
 61       <scope>test</scope>
 62     </dependency>
 63 
 64     <dependency>
 65       <groupId>mysql</groupId>
 66       <artifactId>mysql-connector-java</artifactId>
 67       <version>$mysql.version</version>
 68     </dependency>
 69 
 70     <dependency>
 71       <groupId>javax.servlet</groupId>
 72       <artifactId>servlet-api</artifactId>
 73       <version>2.5</version>
 74       <scope>provided</scope>
 75     </dependency>
 76 
 77     <dependency>
 78       <groupId>javax.servlet.jsp</groupId>
 79       <artifactId>jsp-api</artifactId>
 80       <version>2.0</version>
 81       <scope>provided</scope>
 82     </dependency>
 83 
 84     <dependency>
 85       <groupId>jstl</groupId>
 86       <artifactId>jstl</artifactId>
 87       <version>1.2</version>
 88     </dependency>
 89 
 90     <!-- log start -->
 91     <dependency>
 92       <groupId>log4j</groupId>
 93       <artifactId>log4j</artifactId>
 94       <version>$log4j.version</version>
 95     </dependency>
 96 
 97     <dependency>
 98       <groupId>org.slf4j</groupId>
 99       <artifactId>slf4j-api</artifactId>
100       <version>$slf4j.version</version>
101     </dependency>
102 
103     <dependency>
104       <groupId>org.slf4j</groupId>
105       <artifactId>slf4j-log4j12</artifactId>
106       <version>$slf4j.version</version>
107     </dependency>
108     <!-- log end -->
109     <dependency>
110       <groupId>org.mybatis</groupId>
111       <artifactId>mybatis</artifactId>
112       <version>$mybatis.version</version>
113     </dependency>
114 
115     <dependency>
116       <groupId>org.mybatis</groupId>
117       <artifactId>mybatis-spring</artifactId>
118       <version>1.3.0</version>
119     </dependency>
120 
121     <dependency>
122       <groupId>c3p0</groupId>
123       <artifactId>c3p0</artifactId>
124       <version>0.9.1.2</version>
125       <type>jar</type>
126       <scope>compile</scope>
127     </dependency>
128     <dependency>
129       <groupId>org.junit.jupiter</groupId>
130       <artifactId>junit-jupiter-api</artifactId>
131       <version>RELEASE</version>
132       <scope>compile</scope>
133     </dependency>
134     <dependency>
135       <groupId>org.junit.jupiter</groupId>
136       <artifactId>junit-jupiter-api</artifactId>
137       <version>RELEASE</version>
138       <scope>compile</scope>
139     </dependency>

1.3 标记文件夹

技术图片

 

 需要注意,要用IDEA中的mark as将文件夹分别标注为源代码和配置文件

1.4 编写实体类

 1 public class User 
 2     private int id;
 3     private String username;
 4     private Date birthday;
 5     private String sex;
 6     private String address;
 7 
 8     public int getId() 
 9         return id;
10     
11 
12     public void setId(int id) 
13         this.id = id;
14     
15 
16     public String getUsername() 
17         return username;
18     
19 
20     public void setUsername(String username) 
21         this.username = username;
22     
23 
24     public Date getBirthday() 
25         return birthday;
26     
27 
28     public void setBirthday(Date birthday) 
29         this.birthday = birthday;
30     
31 
32     public String getSex() 
33         return sex;
34     
35 
36     public void setSex(String sex) 
37         this.sex = sex;
38     
39 
40     public String getAddress() 
41         return address;
42     
43 
44     public void setAddress(String address) 
45         this.address = address;
46     
47 
48     @Override
49     public String toString() 
50         return "User" +
51                 "id=" + id +
52                 ", username=‘" + username + ‘\\‘‘ +
53                 ", birthday=" + birthday +
54                 ", sex=‘" + sex + ‘\\‘‘ +
55                 ", address=‘" + address + ‘\\‘‘ +
56                 ‘‘;
57     
58 

1.5 编写业务层接口和持久层接口

持久层接口

1 public interface IUserDao 
2     public List<User> findAll();
3 

业务层接口

1 public interface IUserService 
2     public List<User> findAll();
3 

二、Spring框架

2.1 编写spring配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:aop="http://www.springframework.org/schema/aop"
 5        xmlns:tx="http://www.springframework.org/schema/tx"
 6        xmlns:context="http://www.springframework.org/schema/context"
 7        xsi:schemaLocation="http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans.xsd
 9         http://www.springframework.org/schema/tx
10         http://www.springframework.org/schema/tx/spring-tx.xsd
11         http://www.springframework.org/schema/aop
12         http://www.springframework.org/schema/aop/spring-aop.xsd
13         http://www.springframework.org/schema/context
14         http://www.springframework.org/schema/context/spring-context.xsd">
15     <!-- 配置 spring 创建容器时要扫描的包  -->
16     <context:component-scan base-package="com.justnow">
17         <!--制定扫包规则,不扫描@Controller 注解的 JAVA 类,其他的还是要扫描 -->
18         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
19     </context:component-scan>
20 </beans>

使用componet-scan,可以让Spring自动识别哪些类需要被装配程Bean,从而减少在xml中的配置

2.2 使用注解配置业务层和持久层

此时,需要实现类,实现注解配置

技术图片

 

 其中持久层

 1 import java.util.List;
 2 
 3 @Repository("userDao")
 4 public class UserDaoImpl implements IUserDao 
 5     @Override
 6     public List<User> findAll() 
 7         System.out.println("查询了所有账户");
 8         return null;
 9     
10 

业务层

 1 @Service("userService")
 2 public class UserService implements IUserService 
 3 
 4     @Autowired
 5     private IUserDao userDao;
 6 
 7     @Override
 8     public List<User> findAll() 
 9         return userDao.findAll();
10     
11 

因为我们使用的是自动检测Bean的方式,所以要明确知道哪些类需要注册为spring Bean。此时,需要使用构造性(stereotype)来注解所标注的类

@Component:把资源让spring来管理,相当于在xml中配置了一个Bean

@Controller:一般用于表现层的注解

@Service:一般用于业务层的注解

@Repository:一般用于持久层的注解

后面三个是第一个的衍生注解,与@Commponent作用和属性是都一样,只不过是提供了更加明确的使用场景。

注解的value指定了Bean的id。如@Service("userService"),可以表示将该类注册为Bean,其中id为userService。如果没有指定value的话,该Bean的id为类名第一个字母小写

2.3 测试spring能否独立运行

1 public class Test01Spring 
2     public static void main(String[] args) 
3         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
4         IUserService userService = (IUserService) context.getBean("userService");
5         userService.findAll();
6     
7 

拿到配置文件,根据id值实例化类,执行findAll方法

执行的结果为:

技术图片

说明,上述的配置过程无问题!

 

 

 

 

 

 

   

以上是关于SSM框架整合spring框架的搭建的主要内容,如果未能解决你的问题,请参考以下文章

SSM框架整合spring框架的搭建

SpringMVC第五次课 SSM整合

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

ssm+maven(模块化)框架搭建(下)---ssm整合

ssm框架搭建整合测试

阶段3 3.SpringMVC·_07.SSM整合案例_03ssm整合之编写Spring框架