亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javaWeb開發ssm框架如何搭建

發布時間:2021-11-03 11:15:55 來源:億速云 閱讀:148 作者:小新 欄目:編程語言

小編給大家分享一下javaWeb開發ssm框架如何搭建,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

介紹

    在學習javaweb開發中,常用框架的學習是很重要的,通過使用框架進行開發,可以很大程度的提升開發效率,減少開發者的工作量。隨著互聯網高速發展,軟件開發中使用的框架也是層出不窮,目前使用最廣的框架應該是屬于ssm這三大框架,下面就來收悉一下ssm框架的使用。

注:在使用SSM搭建框架之前,需要收悉一下springmvc、spring、mybatis。

SSM框架搭建步驟

注:本文采用idea開發工具搭建,eclipse工具都差不多

1.創建一個javaweb maven項目,具體創建方式可參考上一篇“IDEA通過maven構建JavaWeb項目步驟詳解”

2.修改項目結構,如下圖:

javaWeb開發ssm框架如何搭建

3.根據上圖結構添加mybatis-config.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--開啟駝峰命名自動轉換
    一般數據庫命名規則一般是user_name,而我們實體類中一般使用userName,
    開啟后就可以自動映射了
    -->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"></setting>
    </settings>
</configuration>

4.添加mapper.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--命名空間就是接口的全限定名路徑-->
<mapper namespace="com.cn.itcdns.mapper.UserMapper">
    <!--id的值:要和接口UserMapper下的方法名一致
    resultType:1.要和方法返回值類型一樣,或者是返回值類型的集合
               2.原本需要寫返回值類型的權限定名路徑,
                但是我們在applicationContext里配置了別名所屬的包
               所以只要寫類名即可     -->
    <select id="findAllUsers" resultType="User">
		select * from user
	</select>
</mapper>

5.添加jdbc.properties 文件

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db
jdbc.username=root
jdbc.password=root

6.添加applicationContext.xml  文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 引入外部的屬性資源文件,把我們剛剛配置的jdbc配置文件引入進來 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 掃包,只需要掃service的即可,Controller的包springMVC會掃描,
        mapper層的,下面類會幫我們掃描 -->
    <context:component-scan base-package="com.cn.itcdns.service">
    </context:component-scan>
    <!-- 使用專門掃描mapper接口的類 -->
    <bean>
        <property name="basePackage" value="com.cn.itcdns.mapper"></property>
    </bean>

    <!-- 配置數據源 ,這里了用的是阿里巴巴的德魯伊數據源-->
    <bean id="dataSource">
        <property name="driverClassName" value="${jdbc.driverClass}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
    <!--sqlSession工廠,我們對數據庫增刪改查就靠他-->
    <bean id="sqlSessionFactory">
        <!-- 注入配置的數據源 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- 注入mybatis-config配置文件 -->
        <property name="configLocation" 
            value="classpath:mybatis/mybatis-config.xml">
        </property>
        <!-- 注入mapper.xml文件位置,
        這里的/**/*.xml寫法,只要是/mybatis/mapper下的都可以注入進來,
        哪怕里面又加了幾個文件夾-->
        <property name="MapperLocations" value="classpath:mybatis/mapper/**/*.xml">
        </property>
        <!-- 配置別名所屬的包名,配置了這個,我們UserMapper.xml文件下的
            resultType就只需要寫類名即可-->
        <property name="typeAliasesPackage" value="com.cn.itcdns.domain">
        </property>
    </bean>


    <!-- 配置事務管理器 -->
    <bean id="transactionManager" 
         >
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!-- 配置事務屬性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!--配置事務的屬性,如果方法名是find開頭,只允許查詢業務,
            不允許增刪改業務,這樣可以防錯,如果寫了刪除或者增加功能,
            則會拋出異常,提醒開發人員-->
            <tx:method name="find*" read-only="true"/>
            <!--其他方法做增刪改功能-->
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>
    <!-- 配置切面
    配置了事務后,我們肯定要告訴spring,哪些方法需要加上事務 -->
    <aop:config>
        <!--配置切點-->
        <aop:pointcut expression="execution(* com.agu.service.impl.*.*(..))" 
            id="pointcut"/>
        <!--將advice注入程序中pointcut位置的代碼-->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
    </aop:config>
</beans>

7.添加springmvc-servlet.xml  文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 開啟注解掃描,掃描controller包 -->
    <context:component-scan base-package="com.cn.itcdns.controller">
    </context:component-scan>

    <!-- mvc注解驅動 -->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!-- 配置springMVC視圖解析器 -->
    <bean>
        <!--有時我們需要將數據響應到某個頁面,例如響應到/jsp/users.jsp,
            controller只需要返回"users"-->
        <!--url路徑的前綴-->
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <!--url路徑的后綴-->
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- 處理靜態資源攔截問題,如果是靜態資源的請求,則默認服務器的servlet處理,
     如果不是,則交給DispatcherServlet處理-->
    <mvc:default-servlet-handler/>
</beans>

8.修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

  <!-- 配置字節碼過濾器 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
        org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 指定spring配置文件名 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/applicationContext.xml</param-value>
  </context-param>
  <!-- 工程啟動時,創建IOC容器 -->
  <listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

  <!-- springmvc入口 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <!-- 指定springmvc配置文件路徑 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/springmvc-servlet.xml</param-value>
    </init-param>
    <!--項目啟動時,就加載此servlet  -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!-- 攔截除了jsp以外的所有請求(不是/*) -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

9.創建實體Bean,例如:User.java

package com.cn.itcdns.domain;
import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    // 用戶名
    private String userName;

    // 密碼
    private String password;

    // 姓名
    private String name;

    // 年齡
    private Integer age;

    // 性別,1男性,2女性
    private Integer sex;

    // 出生日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    // 創建時間
    private Date created;

    // 更新時間
    private Date updated;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", userName=" + userName 
                +".password=" + password + ", name=" + name
                + ", age=" + age + ", sex=" + sex
                +",birthday=" + birthday + ", created=" + created
                + ", updated=" + updated + "]";
    }

}

10.創建DAO,例如:UserMapper.java

package com.cn.itcdns.mapper;

import com.cn.itcdns.domain.User;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper{

     List<User> findAllUsers();

}

11.定義service接口,例如:UserService.java

package com.cn.itcdns.service;

import com.cn.itcdns.domain.User;

import java.util.List;

public interface UserService {
    /**
     * 查詢所有用戶信息
     * @return
     */
    List<User> findAllUsers();


}

12.定義UserService接口實現,例如:UserServiceImpl.java

package com.cn.itcdns.service.impl;

import com.cn.itcdns.domain.User;
import com.cn.itcdns.mapper.UserMapper;
import com.cn.itcdns.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAllUsers() {
        List<User> list = userMapper.findAllUsers();
        return list;
    }

}

13.定義controller控制器,例如:UserController.java

package com.cn.itcdns.controller;

import java.util.List;

import com.cn.itcdns.domain.User;
import com.cn.itcdns.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("list")
    public String test1(Model model) {
        List<User> users = userService.findAllUsers();
        model.addAttribute("userList", users);
        return "userList";
    }
}

14.創建jsp頁面,例如:userList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <link rel="stylesheet" type="text/css" href="/css/user.css"/>
</head>
<body>
<table id="customers" border="1px">
    <tr>
        <th>編號</th>
        <th>用戶名</th>
        <th>姓名</th>
        <th>年齡</th>
        <th>性別</th>
        <th>出生日期</th>
        <th>創建時間</th>
        <th>更新時間</th>
    </tr>
    <c:forEach items="${userList}" var="user">
        <tr>
            <td>${user.id}</td>
            <td>${user.userName}</td>
            <td>${user.name}</td>
            <td>${user.age}</td>
            <td>
                <c:choose>
                    <c:when test="${user.sex==1}">男</c:when>
                    <c:otherwise>女</c:otherwise>
                </c:choose>
            </td>
            <td>
                <fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd"/>
            </td>
            <td>
                <fmt:formatDate value="${user.created}" pattern="yyyy-MM-dd HH:mm:ss"/>
            </td>
            <td>
                <fmt:formatDate value="${user.updated}" pattern="yyyy-MM-dd HH:mm:ss"/>
            </td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

到此,項目創建完畢,將項目編譯后打包放入到tomcat中啟動,訪問得到如下結果:

javaWeb開發ssm框架如何搭建

以上是“javaWeb開發ssm框架如何搭建”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

项城市| 石狮市| 二连浩特市| 井研县| 乌鲁木齐县| 东方市| 深泽县| 黑河市| 海阳市| 嘉祥县| 上杭县| 喀喇沁旗| 永靖县| 信宜市| 霞浦县| 盈江县| 林口县| 加查县| 沽源县| 攀枝花市| 鄂尔多斯市| 昌都县| 大田县| 九龙县| 宝坻区| 介休市| 四子王旗| 鄄城县| 龙州县| 旬邑县| 雷波县| 临泉县| 敦化市| 黄骅市| 靖远县| 吴旗县| 兴宁市| 正阳县| 尖扎县| 文登市| 庄浪县|