【Java从零到架构师第③季】【35】SSM整合

【Java从零到架构师第③季】【35】SSM整合,第1张

【Java从零到架构师第③季】【35】SSM整合

持续学习&持续更新中…

守破离


【Java从零到架构师第③季】【35】SSM整合_MyBatis补充_Maven补充

SSM整合—存在一个问题SSM整合—问题解决—父子容器SSM整合—父子容器—实现SSM整合—代码MyBatis补充Maven补充—打包方式参考

SSM整合—存在一个问题

正常情况下,controller、service、dao这三层合理的依赖关系应该是这样的:

但是,不免会有人这样去依赖:

那么,如何禁止类似这样的混乱依赖行为呢?如何解决这个问题呢?

其实service能够依赖controller(controller能够被注入到service的某个属性中)这种现象的根本原因就在于它们都在同一个IoC容器中,因此解决方案就是——使用父子容器!

SSM整合—问题解决—父子容器

SSM整合—父子容器—实现

applicationContext.xml:



    

dispatcherServlet.xml:



    
    
        
    
    

web.xml:



    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:dispatcherServlet.xml
        
        0
    
    
        DispatcherServlet
        
        /
    
    
    
        contextConfigLocation
        classpath:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

SSM整合—代码

pom.xml:



    4.0.0

    programmer.lp
    SSM_integration_01_XML
    1.0.0

    war

    
    
        8
        8
        8
        UTF-8
    

    
        
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.3
            provided
        
        
        
            mysql
            mysql-connector-java
            5.1.49
        
        
            com.alibaba
            druid
            1.2.8
        
        
            org.mybatis
            mybatis
            3.5.7
        
        
        
            org.springframework
            spring-webmvc
            5.2.2.RELEASE
        
        
            org.aspectj
            aspectjweaver
            1.9.6
        
        
            org.aspectj
            aspectjrt
            1.9.6
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.13.0
        
        
        
            org.springframework
            spring-jdbc
            5.2.8.RELEASE
        
        
            org.mybatis
            mybatis-spring
            2.0.6
        
        
        
            ch.qos.logback
            logback-classic
            1.2.7
        
        
            junit
            junit
            4.13.2
            test
        
    

web.xml:



    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:dispatcherServlet.xml
        
        0
    
    
        DispatcherServlet
        
        /
    
    
    
        contextConfigLocation
        classpath:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        CharacterEncodingFilter
        

@Controller
@RequestMapping("/skill")
public class SkillController {

    private SkillService service;

    @Autowired
    public void setService(SkillService service) {
        this.service = service;
    }

    @PostMapping("/remove")
    @ResponseBody
    public String remove(Integer id) {
        return service.remove(id) ? "删除成功" : "删除失败";
    }

    @PostMapping("/save")
    @ResponseBody
    public String save(Skill skill) {
        return service.save(skill) ? "保存成功" : "保存失败";
    }

    @GetMapping("/get")
    @ResponseBody
    public Skill get(Integer id) {
        return service.get(id);
    }

    @GetMapping("/list")
    @ResponseBody
    public List list() {
        return service.list();
    }

}

MyBatis补充

mybatis-config.xml:




    
        
    

applicationContext.xml:

    
    
        
        
        
    
    
        
        
    

方式一(需要配置Maven的打包方式):

方式二(编译的时候生成的target目录中,就自动会将xml(映射)文件与java(DAO接口)文件合并在一起):

Maven补充—打包方式

pom.xml:

    
        
        
            
            
                src/main/resources
            
            
            
                src/main/java
                
                    ***.xml



                
            
        
    
参考

小码哥-李明杰: Java从0到架构师③进阶互联网架构师.


本文完,感谢您的关注支持!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存