码迷,mamicode.com
首页 > 编程语言 > 详细

SSM框架整合(一)spring框架的搭建

时间:2019-08-21 21:33:50      阅读:462      评论:0      收藏:0      [点我收藏+]

标签:enc   自动   autowired   lis   span   构造   auto   dea   base   

 

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框架的搭建

标签:enc   自动   autowired   lis   span   构造   auto   dea   base   

原文地址:https://www.cnblogs.com/justn0w/p/11389783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!