ssm入门配置,这篇就够了

您所在的位置:网站首页 ssm框架dao ssm入门配置,这篇就够了

ssm入门配置,这篇就够了

#ssm入门配置,这篇就够了| 来源: 网络整理| 查看: 265

ssm框架整合

首先明确一点就是,web项目的入库是在web.xml下的,所有的配置文件无论怎么注入都要最终到这个配置文件里面(日志文件除外)

首先配置

pom.xml

(springframework整合spring框架,整合mybatis框架,mysql驱动,druid连接池,整合log4j,ackson Json处理工具包,Servlet/JSP/JSTL,单元测试,Spring对JDBC数据访问进行封装的所有类)

4.0.0 com.zxl test 0.0.1-SNAPSHOT war 4.10 4.1.3.RELEASE 3.2.8 1.2.2 5.1.32 1.1.6 1.6.4 1.2 2.5 2.0 2.4.2 junit junit ${junit.version} test org.springframework spring-webmvc ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-aspects ${spring.version} org.mybatis mybatis ${mybatis.version} org.mybatis mybatis-spring ${mybatis.spring.version} mysql mysql-connector-java ${mysql.version} com.alibaba druid ${druid.version} org.slf4j slf4j-log4j12 ${slf4j.version} com.fasterxml.jackson.core jackson-databind 2.10.0.pr1 javax.servlet servlet-api ${servlet-api.version} provided javax.servlet jsp-api ${jsp-api.version} provided jstl jstl ${jstl.version} 复制代码 web.xml SSMDemo index.html index.htm index.jsp default.html default.htm default.jsp springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring/*.xml springmvc / 复制代码 applicationContext.xml 复制代码 springmvc-config.xml 复制代码 mybatis-config.xml 复制代码 db.properties db.driverClassName=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/myweb?characterEncoding=utf-8 db.username=root db.password=123456 复制代码 总结:

1.pom.xml配置如下

(springframework整合spring框架,整合mybatis框架,mysql驱动,druid连接池,整合log4j,ackson Json处理工具包,Servlet/JSP/JSTL,单元测试,Spring对JDBC数据访问进行封装的所有类)

2.web.xml配置如下

项目名字

项目主页寻找地址

前端控制器(加载spring容器,在这个同时也加载springmvc)前端控制器就是用的DispatcherServlet

然后加载spring容器,我把spring所有的文件全部放在看spring下面,所有我用通配符就行可以了

springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring/*.xml 复制代码

拦截所有请求

springmvc / 复制代码

applicationContext.xml配置如下

配置jdbc,先加载jdbc连接配置文件的位置

复制代码

配置连接池durid,和c3p0等都可以

复制代码

(配置事务管理,对mybatis操作数据库事务控制,spring使用jdbc的事务控制类)(此项目前不清楚是做什么的,不配置也可以)

复制代码

(传播行为 transaction-manager通知给事务管理器)此项目前不清楚是做什么的,不配置也可以)猜测是用来规范编码,的在接口方法命名上要符合这个的规则

复制代码

(事务控制)

复制代码

整合spring和mybatis框架,将SqlSessionFactory交个spring容器,读取xml中的sql语句,然后交个spring来管理

复制代码

定义mapper接口扫描器,配置所有mapper的包路径,将来由spring+mybatis框架为接口来提供服务(扫描dao层)

复制代码

配置要扫描的service层的包,spring去自动扫描类,扫描注解(扫描service层)

复制代码

springmvc-config.xml

配置注解驱动,用于识别注解,比如@controller@RequestMapping等

复制代码

配置需要去自动扫描的包,sprig就会去自动扫描对应下面的注解

复制代码

视图解析器prefix配置路径前缀,suffix配置文件后缀

复制代码

配置静态资源扫描。对于访问这个文件夹下面的资源就放行

复制代码

mybatis-config.xml

此文件已经被spring整合了里面本来应该配置数据链接信息,和数据连接池。然后包这个文件注入spring中,现在我直接放到了applicationContext中所有这个文件暂时没有用

ssm请求流程

首先,1用户发起请求,

用户的请求到中央控制器DispatcherServlet,拦截所有请求,

2调用处理器映射器找到处理器annotation-driven(这里通过注解扫描扫描到RequestMapper,通过这个知道请求路径)

3.返回HandlerExecutionChan(处理器拦截器)看这个请求是否拦截,这个返回到终于控制器

然后返回了一个执行链之后对于这个链条去执行

4.通过处理器适配器调用具体方法(因为对于请求的参数问题,参数自己匹配啊什么的,可能还是因为web开发要调用到service接口,这个没有继承任然可以做到,就是要去适配一下,通过扫描到controller接口然后在去适配的)

5.调用具体的Handler(处理器也叫controller控制器)

​ 5.1处理器简单的分三层架构,controller,service和dao

​ 5.2 Controller(上面所有的请求都是到这一层,然后控制层去调用service,服务层,服务层去调用dao层)

​ 5.3 controller调service的接口,接口实现类里面调用dao层的接口,dao层通过mybatis去调用到对应的xml文件 里面的sql语句,然后操作的结果(查询结果,增删改等操作成功或失败等)返回到service

​ 5.4 service这一层如果要对数据进行处理,那么处理之后就返回给controller

6.controller层最好通过ModelAndView去返回页面地址和数据给处理器适配器

7.处理器适配器把这个ModelAndView返回到中央控制器DispatcherServlet

8.中央控制器DispatcherServlet把这个View给ViewResolver(视图解析器)

9.ViewResolver(视图解析器)返回数据给中央控制器DispatcherServlet

10,进行视图渲染,填充Model等,得到一个完整的View视图

11.返回把这个视图返回给用户

mybatis

放在resource下面,然后可以自动扫描到

复制代码

工具类,创建工厂的,返回session

public SqlSession openMyBatis(){ /*确定指令连接对象*/ SqlSessionFactory sqlSessionFactory; /*sqlsession为指令执行对象*/ SqlSession session=null; String resources= "mybatis.xml"; try { InputStream inputStream = Resources.getResourceAsStream(resources); /*如果配置文件正常加载,就开始连接数据库*/ sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream); /*sql指令执行环节session调用工具方法,实例化成功 * 获取到dao层接口,并实例化*/ session= sqlSessionFactory.openSession(); }catch (Exception e){ e.printStackTrace(); System.out.println("mybatis实例化失败"); } return session; } public static void closeMybatis(SqlSession sqlSession){ if (sqlSession!=null){ sqlSession.close(); } } 复制代码

具体实现类

public void LoginServlet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("fAccount"); String password =request.getParameter("fPassword"); MybatisConfig mybatisConfig = new MybatisConfig(); SqlSession session=mybatisConfig.openMyBatis(); UserDao userDao =session.getMapper(UserDao.class); List list = userDao.selectUserAll(); for (Map map : list) { if (map.get("name").equals(name)&&map.get("password").equals(password)){ request.setAttribute("msg","看见我就是登录成功"); request.getRequestDispatcher("/WEB-INF/success.jsp").forward(request,response); break; } } request.setAttribute("msg","看见我就是登录失败,失败,失败,重要的事说三遍,滚回去改代码去"); request.getRequestDispatcher("/WEB-INF/failure.jsp").forward(request,response); } 复制代码

调用工具类返回session,然后通过session去调用getMapper(传递接口的字节码)==所以这个就是调用的这个接口的实例化对象==

然后在根据这个对象调用相应的sql语句,执行sql语句,只需要关注两点,传入参数和返回对象

在web项目中,java代表了web的后端开发区域

com.stu.ssm代表了项目的主题包,所有的自保都要在主题包中简历

1.base:项目的前端板块,客户浏览板块,给网页浏览者查看的区域板块,一般不需要账户登录,可直接查看

2.basemanage:项目的后端板块,管理员运营板块,有相关盈利机构组织负责人员进行账号登陆权限管理,对base客户浏览页面板块进行及时的数据文字报道,视频,音频,图像,消费品广告信息进行上下架更新管理

3.filter:web项目的过滤器,对整套系统安全性方木啊的数据过滤,请求过滤,(后端控制层的)

4.interceptor web项目的拦截器,对访问jsp及整套html的请求,在访问到页面之后,进行结果反弹,重定向登陆页面

--注意,一般过滤器和拦截器都设定在basemanage后端中--

5.resource,是对整个web项目的spring框架配置xml文件存储的空间

6.util自定义工具包



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3