您的位置:澳门新葡8455最新网站 > 编程教学 > eclipse下配置安装ssm图文教程,基于注解快速开发

eclipse下配置安装ssm图文教程,基于注解快速开发

发布时间:2019-10-06 23:27编辑:编程教学浏览(90)

    IDE:IntelliJ IDEA 2017.3.5Spring Boot:2.0.1

    eclipse下安顿安装ssm图像和文字化教育程(web版)

    一、创制项目

    一、设置所需jar包

    1. 选择 Spring Initializr

    图片 109eb793a3caefb15

    1.1  mybatis安装包

    2. 要运用 JSP 开垦,这里供给选拔 war 包格局

    图片 24be014ad4a208d1c

     图片 3

    3. 这里选择 Web 和 MyBatis 多个依赖项

    图片 43a67ced14c401d35

    下一步,然后 Finish 完成

     

    二、pom.xml 配置

    能够进来GitHub的

    1. 找到 spring-boot-starter-tomcat 删除 <scope>provided</scope>

    Mybatis达成缓存的jar包:

    2. 抬高如下多个依据
    <!-- JSP 必要依赖 --><dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId></dependency><!-- SQLite 驱动 --><dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.21.0.1</version></dependency>
    

    图片 5

    三、JSP 配置

     

    1. 在 src/main 目录下完善目录结构,如下图

    图片 628f55089c4a6165c

    views 目录是用来贮存 jsp 文件

    1.2  spring安装包

    2. 配备视图

    开拓配置文件 application.properties

    配置路径后缀

    spring.mvc.view.prefix=/WEB-INF/views/spring.mvc.view.suffix=.jsp
    

     图片 7

    四:数据库配置

    补充:spring配置aop的aspect包

    1. 创办数据库

    图片 82854C3B8-7EEC-4D26-8155-4F793D715703.png图片 9F474C110-7AAA-42CF-9686-20785325590A.png

     图片 10

    2. 创建表

    图片 1130a804457d93f828

    能够进来spring官方网站的

    3. 开采配置文件 application.properties

    加盟数据库配置(url 千万永不布署错了,可直接copy下边创建数据库的UPRADOL)

    spring.datasource.driver-class-name=org.sqlite.JDBCspring.datasource.url=jdbc:sqlite:/Users/Chance/Documents/db_demo.dbspring.datasource.username=spring.datasource.password=
    

    下载所需版本,本文版本是spring-framework-4.3.0.RELEASE

    五、正式走入coding

     

    1. 创建包 controller、mapper、service、model

    图片 12866ba178704de422

    1.3  springMVC安装包

    2. 创设 model 德姆oModel 对应数据库字段
    public class DemoModel { private Integer id; private String key; private String value; // 省略 getter 和 setter}
    

     图片 13

    3. 创建 mapper DemoMapper
    @Mapper@Componentpublic interface DemoMapper { // 插入 并查询id 赋给传入的对象 @Insert("INSERT INTO tb_test(key, value) VALUES(#{key}, #{value})") @SelectKey(statement = "SELECT seq id FROM sqlite_sequence WHERE (name = 'tb_test')", before = false, keyProperty = "id", resultType = int.class) int insert(DemoModel model); // 根据 ID 查询 @Select("SELECT * FROM tb_test WHERE id=#{id}") DemoModel select; // 查询全部 @Select("SELECT * FROM tb_test") List<DemoModel> selectAll(); // 更新 value @Update("UPDATE tb_test SET value=#{value} WHERE id=#{id}") int updateValue(DemoModel model); // 根据 ID 删除 @Delete("DELETE FROM tb_test WHERE id=#{id}") int delete(Integer id);}
    

    图片 14

    4. 创建 service DemoService
    @Servicepublic class DemoService { private final DemoMapper dao; @Autowired public DemoService(DemoMapper dao) { this.dao = dao; } public boolean insert(DemoModel model) { return dao.insert > 0; } public DemoModel select { return dao.select; } public List<DemoModel> selectAll() { return dao.selectAll(); } public boolean updateValue(DemoModel model) { return dao.updateValue > 0; } public boolean delete(Integer id) { return dao.delete > 0; }}
    

    springMVC是以spring应用为底蕴的,未有官方网站提供下载,能够百度下载。

    5. 创立调节器 controller DemoController
    @Controllerpublic class DemoController { private final DemoService service; @Autowired public DemoController(DemoService service) { this.service = service; } /** * JSP 测试 * @return JSP 视图 */ @GetMapping public ModelAndView demo() { ModelAndView mv = new ModelAndView; // 对应 demo.jsp 路径 mv.addObject("value", "测试值"); return mv; } /** * 接口测试 * @return JSON 字符串 */ @GetMapping @ResponseBody public List<DemoModel> allDemo() { return service.selectAll(); } // @ResponseBody 如果返回的是对象 会自动转为json字符串,如果返回的是String 则返回该字符串}
    

     图片 15

    6. 创建 JSP 视图 demo.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body>demo.jspvalue: ${value}</body></html>
    

    hibernate-validator(springMVC校验所需包)

    六、到这里,项目曾经得以运作了

    最终的档期的顺序布局

    图片 162a919fb12abd0b82

     

    七、轻巧的测量试验

    1.4 ssm的框架间的连天包或增加包

    1. 采取项目自动生成的测验类,对 德姆oService 进行简要的单元测量检验

    德姆oApplicationTests 类代码如下

    @RunWith(SpringRunner.class)@SpringBootTestpublic class DemoApplicationTests { @Autowired private DemoService service; @Test public void contextLoads() { DemoModel model = new DemoModel(); model.setKey; model.setValue("测试value1"); // 记录数 List<DemoModel> all = service.selectAll(); int size = all.size(); // insert boolean result = service.insert; Assert.assertTrue; // select DemoModel selectModel = service.select(model.getId; Assert.assertNotNull(selectModel); // selectAll all = service.selectAll(); Assert.assertEquals(size + 1, all.size; // updateValue selectModel.setValue("测试更改value1"); result = service.updateValue(selectModel); Assert.assertTrue; // delete result = service.delete(selectModel.getId; Assert.assertTrue; }}
    

     图片 17

    2. 起动测验

    图片 184da2bcb0f407b617

    假定没出现万分,表明测量检验通过

    springMVC实现json交互所需jar包:与江湖的jar任选其一

    3. 起动服务器

    选择 DemoApplication 并点击 ️ 启动

    图片 19684c768e94daee8d

    在浏览器测验

    查看 JSP 页面是还是不是正规

    看样子上边包车型地铁分界面表达成功

    图片 2034ddb37989267eb2

    测量试验接口

    应该重返数据库全体笔录

    [{"id":4,"key":"测试key1","value":"测试value1"},{"id":5,"key":"测试key1","value":"测试value1"},{"id":6,"key":"测试key1","value":"测试value1"},{"id":7,"key":"测试key1","value":"测试value1"}]

    总体代码已上传至 GitHub:

    穿梭学习积累,手艺升迁自个儿!

     图片 21

    文件上传的jar包:

     图片 22

    Mybatis和spring连接,mysql数据库连接的jar包:

     图片 23

     

    特别注意:只怕出现同样的包导入七个本子引发争持,请依据本身的情状保留二个适中的版本

     

    二、安装步骤

    2.1 创立动态web项目

    类型结构如下:

     图片 24

     

    2.2  创立并配置mybatis的为主配置文件SqlMapConfig.xml

    安顿如下:

    <?xml version="1.0" encoding="UTF-8" ?> 

    <!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    "; 

    <configuration>  

    <!--全局setting配置,依照须求增添-->

     

     

     

    <!-- With this configuration, can now be used anywhere that

    a package where MyBatis will search for beans -->

    <!-- 配置别名 -->

    <typeAliases>  

     <!-- 批量扫描小名 -->

     <package name="com.test.ssm.custom"/> 

    </typeAliases>

     

    <!-- Register all interfaces in a package as mappers -->

    <!-- 配置mapper

     由于使用spring和mybatis的整合包进行mapper扫描,这里就无需配备了。

     必需服从:mapper.xml和mapper接口必需同名且在同样目录下

     --> 

    <!--

    <mappers>  

    <package name="org.mybatis.builder"/>

    </mappers> -->

    </configuration>

     

    2.3  创建spring的配置spring-*.xml(*总结:dao、service、transaction)的头顶新闻

    配备如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns=""

        xmlns:xsi=""

        xmlns:aop=""

        xmlns:tx=""

        xmlns:context=""

        xmlns:mvc=""

        xsi:schemaLocation="

            

            

            

            

            

            

            

            

            

            ">

            

    </beans>

     

    2.4  配置spring管理mybatis的dao配置文件spring-dao.xml

    铺排(不含尾部音信)如下:

    <!-- 加载钦点properties文件 -->

    <context:property-placeholder location="classpath:db.properties" />

     

    <!-- 配置数据库连接 -->

    <!-- 配置数据源dbcp -->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

    destroy-method="close">

    <!-- results in a setDriverClassName(String) call -->

    <property name="driverClassName" value="${jdbc.driverClassName}" />

    <property name="url" value="${jdbc.url}" />

    <property name="username" value="${jdbc.username}" />

    <property name="password" value="${jdbc.password}" />

    </bean>

     

    <!-- 加载钦定的properties文件 -->

        <context:property-placeholder location="classpath:db.properties"/>

     

    <!-- 配置sqlSessionFactory -->

    <bean id="sqlSessionFactory"  class="org.mybatis.spring.SqlSessionFactoryBean">

      <!-- 数据库连接池 -->

      <property name="dataSource" ref="dataSource"/>

      <!-- 加载mybatis的大局配置文件 -->

      <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>

    </bean>

     

    <!-- mapper扫描器 -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <!-- 扫描包路线,假诺急需扫描七个包,中间使用应用半角逗号隔开分离 -->

    <property name="basePackage" value="com.test.ssm.mapper,com.test.ssm.mapper2" />

    <!-- 此属性在对应的类中定义存在为String类型,所传入值为String类型 -->

    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

    <!-- 下方的援用bean会战败是原因:在org.mybatis.spring.mapper.MapperScannerConfigurer

    中的属性sqlSessionFactory类型为org.apache.ibatis.session.SqlSessionFactory,而 信任的sqlSessionFactory的等级次序为org.mybatis.spring.SqlSessionFactoryBean,

    五头的项目不雷同,全体不也许借助 -->

    <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory"/> -->

    </bean>

     

    补充:db.properties配置如下:

    jdbc.driverClassName = com.mysql.jdbc.Driver

    jdbc.url = jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8

    jdbc.username = root

    jdbc.password =

     

    2.5  配置spring管理service的service配置文件spring-service.xml

    布局(不含底部消息)如下:

     <!-- 可以扫描controller、service、... 这里扫描controller,钦赐serviceImpl的包 -->

       <context:component-scan base-package="com.test.ssm.serviceImpl"></context:component-scan>

       

       <!-- 商品管理的Service -->

      <!--  <bean id="itemsService" class="com.test.ssm.serviceImpl.ItemsServiceImpl"/> -->

     

    2.6  配置spring处监护人务的transaction配置文件spring-transaction.xml

    配备(不含底部音讯)如下:

     <!-- 事务管理器

               对mybatis操作数据库事务调节,spring使用JDBC的政工调节

        -->

       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

         <!-- 数据源

          dataSource在applicationContext-dao.xml配置了

          -->

         <property name="dataSource" ref="dataSource"/>

       </bean>

       

       <!-- 通告给钦赐的事情管理器transactionManager -->

       <tx:advice id="txAdvice" transaction-manager="transactionManager">

         <tx:attributes>

          <!-- 传播行为 -->

          <tx:method name="save" propagation="REQUIRED"*/>

          <tx:method name="delete" propagation="REQUIRED"*/>

          <tx:method name="insert" propagation="REQUIRED"*/>

          <tx:method name="update" propagation="REQUIRED"*/>

          <tx:method name="get" propagation="SUPPORTS" read-only="true"*/>

          <tx:method name="select" propagation="SUPPORTS" read-only="true"*/>

         </tx:attributes>

       </tx:advice>

       

       <!-- aop调用 txAdvice-->

       <aop:config>

         <aop:advisor advice-ref="txAdvice" pointcut="execution( com.test.ssm.serviceImpl.*.*(..))"*/>

       </aop:config>

     

    2.7  创立并配置springMVC的布署文件springMVC.xml

    配置如下:

     <!-- 能够扫描controller、service、... 这里扫描controller,内定controller的包 -->

    <context:component-scan base-package="com.test.ssm.controller" />

      

      <!-- 评释的映射器 -->

    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> -->

    <!-- 注脚的适配器 -->

    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> -->

     

    <!-- 使用mvc:annotation-driven能够代表注明的适配器和注释映射器 mvc:annotation-driven暗中认可加载了相当多的参数绑定方法,举例json转变深入分析器就默许加载了

    实质上支出时利用下方的mvc:annotation-driven -->

      <mvc:annotation-driven></mvc:annotation-driven>

      

      <!-- 视图剖判器 (ViewResolver) 解析jsp视图,默许使用jstl标签,classpath下要有jstl的包 -->

      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <!-- 定义视图前缀和后缀 -->

        <property name="prefix" value="/WEB-INF/jsp/"/>

        <property name="suffix" value=".jsp"/>

      </bean>

     

    2.8  配置web容器web.xml

    布署如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app xmlns:xsi="" xmlns="" xsi:schemaLocation=" " id="WebApp_ID" version="3.0">

      <display-name>ssmTest2</display-name>

      <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

        <welcome-file>default.html</welcome-file>

        <welcome-file>default.htm</welcome-file>

        <welcome-file>default.jsp</welcome-file>

      </welcome-file-list>

      

      <!-- 配置前端调控器 -->

      <servlet>

       <servlet-name>springMVC</servlet-name>

       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

       <init-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring/springmvc.xml</param-value>

       </init-param>

      </servlet>

      <!-- 配置前端调控器映射器 -->

      <servlet-mapping>

       <servlet-name>springMVC</servlet-name>

       <url-pattern>*.action</url-pattern>

      </servlet-mapping>

      

      <!-- 加载spring容器 -->

      <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:spring/applicationContext-*.xml</param-value>

      </context-param>

      <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

      </listener>

      

    </web-app>

    2.9  配置log4j的properties配置文件

    配备如下:

    # Global logging configuration

    log4j.rootLogger=DEBUG, stdout

    # MyBatis logging configuration...

    log4j.logger.org.mybatis.example.BlogMapper=TRACE

    # Console output...

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

     

    2.10  成立补全项目布局

    花色布局如下:

     图片 25

     

    2.11 使用tomcat运转测量试验

    测量试验临近如下:

     图片 26

     

     

    三、品种实例测验

    3.1 必要深入分析

    听别人讲物品id获取商品新闻

     

    3.2 鲜明动态代理方法和陈设文件

     图片 27

    上边的mapper包是经过逆向代码工程改变的

    ItemsMapper2.xml配置如下:

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "" >

    <mapper namespace="com.test.ssm.mapper2.ItemsMapper2" >

     <select id="getItemsById" parameterType="int" 

      resultType="itemsCustom">

       select * from items it where it.id=${value}

     </select>

    </mapper>

     

    3.3 依据ItemsMapper2.xml的安插文件书写ItemsMapper2的假说方法

    方法如下:

    package com.test.ssm.mapper.mapper2;

     

    import com.test.ssm.custom.ItemsCustom;

     

    /**

     * 商品代理对象类

     * @author 龙

     * 2017/3/16

     */

    public interface ItemsMapper2 {

      //依照货色id获取商品音讯

      public ItemsCustom getItemsById(int id);

    }

     

    3.4  ItemsService调用和ItemServiceImplement方法落成

    ItemsService调用:

    package com.test.ssm.service;

     

    import com.test.ssm.custom.ItemsCustom;

     

    /**

     * 商品对象业务接口类

     * @author 龙

     * 2017/3/16

     */

    public interface ItemsService {

    //根据商品id获取商品音讯

    public ItemsCustom getItemsById(int id);

    }

     

    ItemServiceImplement方法完成:

    package com.test.ssm.serviceImpl;

     

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Service;

     

    import com.test.ssm.custom.ItemsCustom;

    import com.test.ssm.mapper2.ItemsMapper2;

    import com.test.ssm.service.ItemsService;

     

    /**

     * 商品对象业务实现类

     * @author 龙

     * 2017/3/16

     */

    @Service("itemsService")

    public class ItemsServiceImpl implements ItemsService {

    @Autowired

    ItemsMapper2 itemsMapper2;

    //遵照商品id获取商品消息

    @Override

    public ItemsCustom getItemsById(int id) {

    //调用Items代理对象的getItemsById(id)方法

    return itemsMapper2.getItemsById(id);

    }

     

    }

     

    3.5 前端调控部分ItemsController实现

    ItemsController实现:

    package com.test.ssm.controller;

     

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Controller;

    import org.springframework.ui.Model;

    import org.springframework.web.bind.annotation.RequestMapping;

     

    import com.test.ssm.custom.ItemsCustom;

    import com.test.ssm.service.ItemsService;

     

    /**

     * 商品调节类

     * @author 龙

     * 2017/3/16

     */

    @Controller

    @RequestMapping("/items")

    public class ItemsController {

    @Autowired

        ItemsService itemsService;

     

    @RequestMapping("/itemsSerach")

    public String ItemsCustomSearch(Model model,Integer id){

    ItemsCustom itemsCustom = itemsService.getItemsById(id);

    model.addAttribute("ItemsCustom",itemsCustom);

    return "items/itemsTest";

    }

    }

     

    3.6 前端呈现页面itemsTest.jsp

    itemsTest.jsp内容如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib uri="" prefix="c"%>

    <%@ taglib uri="" prefix="fmt" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ";

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>商品消息测量检验类</title>

    </head>

    <body>

    <table>

     <tr>

      <td>商品名称</td>

      <td>商品价位</td>

      <td>生产日期</td>

      <td>商品描述</td>

      <td>操作</td>

     </tr>

    <c:if test="${ItemsCustom != null }">

      <tr>

       <td><input type="text" name="name" id="itemsName" value="${ItemsCustom.name }"/></td>

       <td><input type="text" name="price" id="itemsPrice" value="${ItemsCustom.price }"/></td>

       <td><input type="text" name="createtime" id="itemsDate" 

       value="<fmt:formatDate value='${ItemsCustom.createtime}' pattern='yyyy-MM-dd'/>"/></td>

       <td><input type="text" name="detail" id="itemsDetail" value="${ItemsCustom.detail }"/></td>

       <td><input type="text" name="pic" id="itemsPic" value="${ItemsCustom.pic }"/></td>

      </tr>

    </c:if>

    </table>

    </body>

    </html>

     

    3.7 测验成功

    测验实例:

    http://localhost:8080/ssmTest2/items/itemsSerach.action?id=10527

    测验结果:

     图片 28

    如上为私有搭建ssm测量检验实例,如有不足还请赐教!

     

     

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:eclipse下配置安装ssm图文教程,基于注解快速开发

    关键词: