您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

java开发框架之SSM整合框架

时间:2021-11-11 11:11:28  来源:搜狐号  作者:AT小白在线中

一、搭建环境

1、创建数据库表和表结构

create table account(

id INT identity(1,1) primary key,

name varchar(20),

[money] DECIMAL

2、创建maven的工程SSM,在pom.xml文件引入依赖

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

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.mingqi</groupId>

<artifactId>SSM</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

<name>SSM Maven WebApp</name>

<!-- FIXME change it to the project's website -->

<url>http://www.example.com</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

<spring.version>5.0.2.RELEASE</spring.version>

<slf4j.version>1.6.6</slf4j.version>

<log4j.version>1.2.12</log4j.version>

<MySQL.version>5.1.6</mysql.version>

<mybatis.version>3.4.5</mybatis.version>

</properties>

<dependencies>

<!-- spring -->

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.6.8</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>com.microsoft.sqlserver</groupId>

<artifactId>sqljdbc4</artifactId>

<version>4.0</version>

</dependency>

<dependency>

<groupId>JAVAx.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.0</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!-- log start -->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>${log4j.version}</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>${slf4j.version}</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>${slf4j.version}</version>

</dependency>

<!-- log end -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>${mybatis.version}</version>

</dependency>

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.0</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>c3p0</groupId>

<artifactId>c3p0</artifactId>

<version>0.9.1.2</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

</dependencies>

<build>

<finalName>SSM</finalName>

<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->

<plugins>

<plugin>

<artifactId>maven-clean-plugin</artifactId>

<version>3.1.0</version>

</plugin>

<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->

<plugin>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.2</version>

</plugin>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.8.0</version>

</plugin>

<plugin>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.22.1</version>

</plugin>

<plugin>

<artifactId>maven-war-plugin</artifactId>

<version>3.2.2</version>

</plugin>

<plugin>

<artifactId>maven-install-plugin</artifactId>

<version>2.5.2</version>

</plugin>

<plugin>

<artifactId>maven-deploy-plugin</artifactId>

<version>2.8.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

</project>

3、部署ssm_web的项目,只要把ssm_web项目加入到Tomcat服务器中即可

4、编写实体类

package com.mingqi.domain;

import java.io.Serializable;

public class Account implements Serializable {

public void setId(Integer id) {

this.id = id;

}

public void setName(String name) {

this.name = name;

}

public void setMoney(Double money) {

this.money = money;

}

public Integer getId() {

return id;

}

public String getName() {

return name;

}

public Double getMoney() {

return money;

}

private Integer id;

private String name;

private Double money;

@Override

public String toString() {

return "Account{" +

"id=" + id +

", name='" + name + ''' +

", money=" + money +

'}';

}

}

5、编写dao接口

package com.mingqi.dao;

import com.mingqi.domain.Account;

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Select;

import org.springframework.stereotype.Repository;

import java.util.List;

@Repository

public interface IAccountDao {

@Insert(value="insert into account (name,money) values (#{name},#{money})")

public void saveAccount(Account account);

@Select("select * from account")

public List<Account> findAll();

}

6、编写service接口和实现类

package com.mingqi.service;

import com.mingqi.domain.Account;

import java.util.List;

public interface IAccountService {

public void saveAccount(Account account);

public List<Account> findAll();

}

package com.mingqi.service.impl;

import com.mingqi.dao.IAccountDao;

import com.mingqi.domain.Account;

import com.mingqi.service.IAccountService;

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

import org.springframework.stereotype.Service;

import java.util.List;

@Service("accountService")

public class AccountImpl implements IAccountService {

@Autowired

private IAccountDao accountDao;

@Override

public void saveAccount(Account account) {

accountDao.saveAccount(account);

}

@Override

public List<Account> findAll() {

System.out.println("业务层:查询所有账户...");

List<Account> accounts=accountDao.findAll();

return accounts;

//return null;

}

}

二、Spring框架代码的编写

1. 搭建和测试Spring的开发环境

在webapp项目中创建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:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

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/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让SpringMVC框架

去管理 -->

<context:component-scan base-package="com.mingqi">

<!-- 配置要忽略的注解 -->

<context:exclude-filter type="annotation"

expression="org.springframework.stereotype.Controller"/>

</context:component-scan>

<!-- 配置C3P0的连接池对象 -->

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=test"/>

<property name="username" value="sa"/>

<property name="password" value="123sa"/>

</bean>

<!-- 配置SqlSession的工厂 -->

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

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

</bean>

<!-- 配置扫描dao的包 -->

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

<property name="basePackage" value="com.mingqi.dao"/>

</bean>

<!--配置Spring框架声明式事务管理-->

<!--配置事务管理器-->

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

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

</bean>

<!--配置事务通知-->

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

<tx:attributes>

<tx:method name="find*" read-only="true"/>

<tx:method name="*" isolation="DEFAULT"/>

</tx:attributes>

</tx:advice>

<aop:config>

<aop:advisor advice-ref="txAdvice" pointcut="execution(public * com.mingqi.service..ServiceImpl.*(..))"/>

</aop:config>

</beans>

三、Spring整合SpringMVC框架

1、搭建和测试SpringMVC的开发环境

1. 在web.xml中配置DispatcherServlet前端控制器

<!DOCTYPE web-app PUBLIC

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

<display-name>Archetype Created Web Application</display-name>

<!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件-->

<listener>

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

</listener>

<!--设置配置文件的路径-->

<context-param>

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

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

</context-param>

<context-param>

<param-name/>

<param-value/>

</context-param>

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

<servlet>

<servlet-name>dispatcherServlet</servlet-name>

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

<!--加载springmvc.xml配置文件-->

<init-param>

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

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

</init-param>

<!--启动服务器,创建该servlet-->

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcherServlet</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<!--解决中文乱码的过滤器-->

<filter>

<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

2、测试SpringMVC的框架搭建是否成功

1. 编写index.jsp和list.jsp编写,超链接

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

<html>

<body>

<h2>查询所有!</h2>

<a href="account/findAll">查询所有</a>

<a href="account/findAll">测试查询</a>

<h3>测试包</h3>

<form action="account/save" method="post">

姓名:<input type="text" name="name" /><br/>

金额:<input type="text" name="money" /><br/>

<input type="submit" value="保存"/><br/>

</form>

</body>

</html>

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

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>

<head>

<title>Title</title>

</head>

<body>

<h3>查询所有的帐户</h3>

<c:forEach items="${list}" var="account">

${account.name}

</c:forEach>

</body>

</html>

2、创建AccountController类,编写方法,进行测试

package com.mingqi.controller;

import com.mingqi.domain.Account;

import com.mingqi.service.IAccountService;

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 javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.List;

@Controller

@RequestMapping("/account")

public class AccountController {

@Autowired

private IAccountService accountService;

/**

* 查询所有数据

* @return

*/

@RequestMapping("/findAll")

public String findAll(Model model)

{

System.out.println("表现层查询所有");

accountService.findAll();

List<Account> list = accountService.findAll();

model.addAttribute("list",list);

return "list";

}

@RequestMapping("/save")

public void save(Account account, HttpServletRequest request, HttpServletResponse response) throws IOException

{

accountService.saveAccount(account);

response.sendRedirect(request.getContextPath()+"/account/findAll");

return;

}

}

配置tomcat,启动项目,进行测试

推荐阅读:

java开发之Java 虚拟机栈

Java开发中SSM框架整合开发之 Spring IoC

Java开发框架之Spring JDBC



Tags:开发框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  Tags: 开发框架  点击:(19)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  Tags: 开发框架  点击:(29)  评论:(0)  加入收藏
一、Vue框架的开发流程介绍 当我们从github上下载一个前端模板框架到本地后,框架中经常会自带有一些跳转显示类的功能,我们可以通过查看这些功能是如何实现的,进而一步步改造为...【详细内容】
2021-11-03  Tags: 开发框架  点击:(34)  评论:(0)  加入收藏
直奔主题,今天我要给大家分享的基于ASP.NETCore开源二次开发框架就是YiShaAdmin。YiShaAdmin 是一款基于.NET Core Web + Bootstrap的企业级快速后台开发框架。内置模块如:用...【详细内容】
2021-07-19  Tags: 开发框架  点击:(144)  评论:(0)  加入收藏
自微软宣布 .NET 5 平台消息之后, 相关的快速开发框架 就如 雨后春笋 般的多了起来,众所周知,框架好不好,其 wiki 真的非常重要,好的 wiki 能让人 更加快速 的上手,并体验 起来 F...【详细内容】
2021-04-06  Tags: 开发框架  点击:(379)  评论:(0)  加入收藏
01 智能合约开发框架TOP3下面这三个智能合约开发框架是适用于所有人的。当然,它们各自在功能和侧重上又略有不同,大家可以自行选择:1.Hardhat (JavaScript)2.Truffle (JavaScript)3...【详细内容】
2021-03-29  Tags: 开发框架  点击:(188)  评论:(0)  加入收藏
接下来我应该学习什么?如果你是一名开发人员,这个问题应该一直在你的脑海中。每天都有新的技术问世,也有对现有技术的改进。由于我们无法学习所有这些技术,所以决定下一步应该...【详细内容】
2020-12-25  Tags: 开发框架  点击:(190)  评论:(0)  加入收藏
Version:0.9 StartHTML:0000000105 EndHTML:0000064633 StartFragment:0000000141 EndFragment:0000064597 本文梳理了在搭建开发框架时的一些考量及具体的处理方法。 框架...【详细内容】
2020-11-16  Tags: 开发框架  点击:(96)  评论:(0)  加入收藏
定位拒绝CRUD。用尽可能简单的方式,完成尽可能多的需求。通过约定的方式 实现统一的标准。告别加班,拒绝重复劳动,远离搬砖概述"Rocket-API" 基于spring boot 的API敏捷开发框...【详细内容】
2020-11-06  Tags: 开发框架  点击:(134)  评论:(0)  加入收藏
之前我分享过一款基于ASP.NET MVC + Layui 的通用后台快速开发框架elight.mvc,受到了很多朋友的关注。今天我将给大家分享一款基于.NET Core最新版+Bootstrap的通用后台快速...【详细内容】
2020-09-21  Tags: 开发框架  点击:(1136)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条