栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM框架整合及详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM框架整合及详解

后台架构上分为4层:DAO、POJO、controller、service

(配合ssmbuild工程一起看)

1、POJO层

 2、持久层:DAO层(mapper)

  • DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此
  • DAO层的首先任务是设计接口(BookMapper.interface)
  • 第二步来写接口的实现类,这里用XML配置文件来实现BookMapper.interface
 3、Controller层

        Controller层负责具体的业务模块流程的控制

  • 在此层里面要调用Service层的接口来控制业务流程,
  • 控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
@Controller
@RequestMapping("/book")
public class BookController {

    //controller调service层
    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    //查询全部书籍并且返回到页面
    @RequestMapping("/allBook")
    public String list(Model model){
        List list = bookService.queryAllBooks();

        model.addAttribute("list", list);

        return "allBook";
    }
}
  •  @Controller
  •  @Controller表示在tomcat启动的时候,把这个类作为一个控制器加载到Spring的Bean工厂,如果不加,就是一个普通的类
  • 在spring-mvc.xml中有以下配置:base-package表示会扫描com.han.controller目录下所有的包,一旦发现有个类上面加了类似于@Controller的注解,在容器启动的时候系统就会把它加载到Spring的Bean工厂,并且对其实例化。这也是为什么,我们只是写了Controller,但是从来没有在一个地方new这个Controller的原因,因为在Web容器启动的时候,这个Controller已经被Spring加载到自己的Bean工厂里面去了。
        
  • @RequestMapping

  • @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

4、WEB层

 logging.properties:加上后,控制台报错会更加详细

org.apache.catalina.core.Containerbase.[Catalina].level=INFO
org.apache.catalina.core.Containerbase.[Catalina].handlers=java.util.logging.ConsoleHandler

BookMapper.xml

        在BookMapper.xml的中的namespace属性值表示该xml配置文件与com.han.dao.BookMapper构成一一映射关系,注意BookMapper接口只能有一个xml与之映射。 

    
        INSERT INTO ssmbuild.books (bookName, bookCounts, detail) VALUES (#{bookName},#{bookCounts},#{detail});
    

    
        DELETE FROM ssmbuild.books WHERe bookID = #{bookID};
    

    
        UPDATE ssmbuild.books
        SET bookName=#{bookName}, bookCounts=#{bookCounts}, detail=#{detail}
        WHERe bookID = #{bookID};
    

    
        SELECT * FROM ssmbuild.books;
    
  •  标签中的id代表标签所对应的BookMapper.interface中的方法
  • #{}代表占位符,即SQL预编译,#{} 能防止sql 注入。变量替换后,#{} 对应的变量自动加上单引号 ''。

#{}内参数的使用规范:

1、单个参数的情形:无MyBatis 默认值,可任意,且与参数名无关

public User getUser(int i);
    
    SELECT * FROM USER WHERe username LIKE '%${value}%'

        一个一个配置别名就会很麻烦,这时候就需要批量定义别名,批量指定很简单,只要指定包名即可,之后程序会为包下的所有类都自动加上别名,其定义别名的规范就是对应包装类的类名或者类名首字母变为小写,其示例1代码如下:


    

        这时设置的包名下的类就都有了别名,别名就是类名(或者首字母小写),像刚才的 User 类,其别名就为 user或者User。

                除了在配置文件中单独的配置别名和批量的配置别名两种方式外,还有一种方式,就是通过注解的方式来配置别名,方法也很简单,在需要配置别名的类前通过 @Alias 注解即可,参数就是别名名称,例如以下示例代码:        

@Alias("user")
public class User{
    //其他代码
}

 

  •          mybatis需要在核心配置文件中注册绑定对应的mapper.xml(这里是BookMapper.xml),使用

                mappers 标签下有许多 mapper 标签,每一个 mapper 标签中配置的都是一个独立的映射配置文件的路径,配置方式有以下几种:

第一种:使用相对路径进行配置。示例代码如下:


    
    
    

第二种:使用绝对路径进行配置。示例代码如下:


    
    
    

第三种:使用接口信息进行配置。示例代码如下:


    
    
    

第四种:使用接口所在包进行配置。示例如下:


    

只有配置了 mappers 信息后,MyBatis 才知道去哪里加载 Mapper 映射文件,在日常开发中,可以根据项目中 Mapper 的配置偏好,选择整合配置文件的配置方式。

spring配置文件之一:spring-dao.xml:

        这个配置文件其实就是将spring和mybatis关联起来的文件,有时候也会命名为spring-mybatis.xml。

        有些参数在某些阶段中是常量,比如 :

                a、在开发阶段我们连接数据库时的连接url,username,password,driverClass等

                b、分布式应用中client端访问server端所用的server地址,port,service等

                c、配置文件的位置

        而这些参数在不同阶段之间又往往需要改变,比如:在项目开发阶段和交付阶段数据库的连接信息往往是不同的,分布式应用也是同样的情况。能不能有一种解决方案可以方便我们在一个阶段内不需要频繁书写一个参数的值,而在不同阶段间又可以方便的切换参数配置信息,spring3中提供了一种简便的方式就是context:property-placeholder/元素。

        只需要在spring的配置文件里添加一句: 即可,这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键值对的形式。

    
    

        然后需要选择数据源,即数据库连接池的类,并连接数据库、配置数据库连接池的一些私有属性。(这里以c3p0连接池为例)

    
    
        
        
        
        

        
        
        
        
        
        
        
        
        
    

        接下来要配置SqlSessionFactory对象:

        在 MyBatis 中,使用 SqlSessionFactoryBuilder创建SqlSessionFactory ,进而来创建 SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时候, 你可以关闭 session。 

    
        
        
        
        
    

下面这段配置暂时还没看明白什么意思

    
    
        
        
    

 

spring配置文件之一:spring-service.xml:

    
    
  • 当在spring的配置文件中配置了标签后,,Spring会去自动扫描base-package的值所表示的包的位置中的java文件,如果扫描到有@Component、@Controller、@Service、@Repository等类似注解的类,会将这个类注册为Bean
    
    
        
    

    
  • 这一段暂时没用上,也没看什么含义

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号