搭建 SSM 框架详细教程(一)

该篇博客使用idea 工具逐步完成 SSM框架的搭建。

一 、 新建项目

idea 创建项目可参照 :Spring MVC 基于HTML 教程 (二)进行项目的创建,此处不再赘述。

项目结构如下:

搭建 SSM 框架详细教程(一)_第1张图片

二、 搭建项目

1. 引入相关依赖,完整依赖如下:




    4.0.0

    com.dongl
    ssm
    1.0-SNAPSHOT
    war

    ssm Maven Webapp
    
    http://www.example.com

    
        UTF-8
        1.8
        1.8
        5.1.5.RELEASE
        1.7.25
        1.2.17
        3.4.5
    

    
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
        
            org.springframework
            spring-context
            ${spring.version}
        

        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
        
            org.aspectj
            aspectjweaver
            1.9.4
        
        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
        
            javax.servlet
            jsp-api
            2.0
            provided
        

        
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        
        
        
            org.mybatis
            mybatis-spring
            1.3.2
        

        
        
            c3p0
            c3p0
            0.9.1.2
        
        
        
        
        
        
            log4j
            log4j
            ${log4j.version}
        
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        

        
        
            com.alibaba
            fastjson
            1.2.47
        

        
            net.sf.json-lib
            json-lib
            2.4
            jdk15
        

        
            junit
            junit
            4.11
            test
        

    

    
        ssm
        
            
                
                    maven-clean-plugin
                    3.1.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.8.0
                
                
                    maven-surefire-plugin
                    2.22.1
                
                
                    maven-war-plugin
                    3.2.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    

2. 创建表结构,及相关的dao 和service层接口

2.1 创建user 表,表结构如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) NOT NULL COMMENT '用户名称',
  `birthday` date DEFAULT NULL COMMENT '生日',
  `sex` char(1) DEFAULT NULL COMMENT '性别',
  `address` varchar(256) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

2.2 定义实体类 User

 

public class User implements Serializable {
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private  String address;
}

get/set 方法自己生成。

2.3 定义dao和service相关接口

// dao 的实现类可以有mybatis的代理实现,项目中可不必实现
public interface UserDao {

    public List findAll();

    public  User findById(Integer id);

    public int save(User user);

    public int deleteById(Integer id);
}

service层接口


public interface UserService {

    public List findAll();

    public  User findById(Integer id);

    public int save(User user);

    public int deleteById(Integer id);
}

service层实现类:

@Service("userService")
public class UserServiceImpl implements UserService {

    @Override
    public List findAll() {
        return null;
    }

    @Override
    public User findById(Integer id) {
        return null;
    }

    @Override
    public int save(User user) {
        return 0;
    }

    @Override
    public int deleteById(Integer id) {
        return 0;
    }
}

2.4 通过spring 配置管理dao和service接口

以上dao和service 接口只有放入到容器中才能实现注解方式,因此创建spring配置文件,applicationcontext.xml 文件。




    
    
        
        
    

配置好 applicationcontext.xml 文件后,即可在 UserServiceImpl.java 类上使用 @Service("userService")  注解。

搭建 SSM 框架详细教程(一)_第2张图片

三、前端和Springmvc 的整合 

3.1 在 web.xml 文件中配置前端控制器,springmvc.xml等,完整配置如下:






    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
        1
    
    
        dispatcherServlet
        /
    

    
    
        login.html
        login.htm
        login.jsp
    


3.2 配置 springmvc.xml 文件





    
    
        
    

    
    
        
        
        
        
        
    

    
    
    
    

    
    

    
    


    

3.3 创建 对应的目录,目录结构如下:

搭建 SSM 框架详细教程(一)_第3张图片

四、Spring整合Springmvc

在Spring整合Springmvc 时,需要服务启动时 加载 applicationContext.xml 文件,用于将Spring实例交给容器管理。这时可以使用监听器进行  applicationContext.xml 的初始化。因此需要在 web.xml 中配置监听器,配置如下:


    
        org.springframework.web.context.ContextLoaderListener
    

由于该监听器默认 加载WEB-INF 目录下的 applicationContext.xml 文件,因此需要指定 applicationContext.xml 文件所在路径。

    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

通过以上配置,即可在控制类中使用:@Autowired 注入实体。

web.xml 的完整配置,如下:






    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    

    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
        contextConfigLocation
        classpath:applicationContext.xml
    


    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
        1
    
    
        dispatcherServlet
        /
    

    
    
        login.html
        login.htm
        login.jsp
    



五 、Spring整合Mybatis

5.1 新建 spring-mybatis.xml 配置文件,在配置文件中配置mybatis 相关内容。配置如下:




    
    
        
        
        
        
    

    
    
        
    

    
    
        
    

5.2 在applicationContext.xml 配置文件中,引入 spring-mybatis.xml 配置。

    
    

5.3 在配置完以上配置后,即可对数据库进行查询操作,添加事务之后可进行其他操作。

在Dao 层添加注解  @Repository

@Repository
public interface UserDao {


    @Select("SELECT * FROM `user`")
    public List findAll();
}

在service 层进行接口注入 

@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public List findAll() {
        System.out.println("userService 的findAll 查询");
        List userList = userDao.findAll();
        return userList;
    }
}

 5.4 添加事务处理

在spring-mybatis.xml 文件 中添加 事务配置,具体配置如下:

    
    
        
        
    

    
    
        
            
            
            
            
            
        
    

    
    
        
        
        
        
    

 进行数据保存测试

在Dao层实现如下:

    @Insert("INSERT INTO `user` (username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address});")
    public int save(User user);

 spring-mybatis.xml 的完整配置文件,如下:





    
    
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
    

    
    
        
        
    

    
    
        
            
            
            
            
            
        
    

    
    
        
        
        
        
    


如有不当之处请多多指教,如对你有所帮助,请留言或点赞予以支持,谢谢!

你可能感兴趣的:(SSM)