如何快速搭建一个ssm框架

首先我们需要创建一个maven项目

1.右键 new maven project 

第一个勾选然后下一步

groupid 可以写com.xxx.xxx  之类的

artifaceid 写项目名 xxx

web项目选择打war包 然后下一步就ok

2.项目中少web.xml /WEB-INFO 右键项目  properties   → project faces → Dynamic Web Module 勾选去掉点击apply  →再勾选上 然后 它会提醒你配置    然后第二个框目录 写src/main/webapp   应用就好了   maven的setting 路径自己配置 镜像位置推荐用阿里云的

3.pom文件的配置

这里jar包miss报错 还有项目红色叹号 怎么弄maven  update project  还有build path  clean都没有用, 直接去网址下载jar包 然后放进文件夹里

具体的pom 需要的jar包 如下

<dependencies>
  		 <!-- springwebmvc包 -->
		  <dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-webmvc</artifactId>
		    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!-- springjdbc事务控制 -->
		  <dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-jdbc</artifactId>
			    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!--spring aspects 面向切面编程  -->
		  <dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-aspects</artifactId>
			    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!-- mybatis -->
		  <dependency>
			    <groupId>org.mybatis</groupId>
			    <artifactId>mybatis</artifactId>
			    <version>3.4.2</version>
		  </dependency>
		  <!-- mybatis spring 整合适配 -->
		  <dependency>
			    <groupId>org.mybatis</groupId>
			    <artifactId>mybatis-spring</artifactId>
			    <version>1.3.1</version>
		  </dependency>
		  <!--数据库链接池  -->
		  <dependency>
			    <groupId>c3p0</groupId>
			    <artifactId>c3p0</artifactId>
			    <version>0.9.1.2</version>
		  </dependency>
  		  <!--mysql驱动  -->
			<dependency>
			    <groupId>mysql</groupId>
			    <artifactId>mysql-connector-java</artifactId>
			    <version>5.1.41</version>
			</dependency>
			<!--开发web的标配包 jstl seevlet-api junit  -->
			<dependency>
			    <groupId>jstl</groupId>
			    <artifactId>jstl</artifactId>
			    <version>1.2</version>
			</dependency>
			<dependency>
			    <groupId>javax.servlet</groupId>
			    <artifactId>servlet-api</artifactId>
			    <version>2.5</version>
			    <scope>provided</scope>   <!--系统本来就有打包自动剔除  -->
			</dependency>
			<dependency>
			    <groupId>junit</groupId>
			    <artifactId>junit</artifactId>
			    <version>4.12</version>
			    <scope>test</scope>
			</dependency>
			
			
  		  
  </dependencies>

4.我们对WEB-INF 下的web.xml 进行编写 <web-app> </web-app> 这个分开 在里面补充  

1).spring 的容器  ContextLoaderListener  快捷键补全 alt+/

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


只用修改这个  并且在src/main/resources  右键 new spring bean configuration File  创建上面的 spring的配置文件

2).springMVC前端控制器

DispatcherServlet 快捷键提示补全

      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>location</param-value>
        </init-param>   删掉不指定 默认全部扫描

将<servlet-name>dispatcherServlet</servlet-name> 全改成这个名

<url-pattern>/</url-pattern>  全部扫描

然后在web.xml同级目录下创建dispatcherServlet-servlet.xml   创建方式同上applicationContext.xml

在这个里面控制springMVC扫描

3).添加两个基本的过滤器

<!-- 3.字符编码过滤器 -->
		<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>
			<init-param>
				<param-name>forceRequestEncoding</param-name>  <!-- 返回 -->
				<param-value>true</param-value>
			</init-param>
			<init-param>
				<param-name>forceResponseEncoding</param-name>  <!-- 响应 -->
				<param-value>true</param-value>
			</init-param>	
		</filter>
		<filter-mapping>
			<filter-name>CharacterEncodingFilter</filter-name>
			<url-pattern>/*</url-pattern>  <!--拦截所有  -->
		</filter-mapping>
	 <!--4.Rest风格的URI  将页面post请求转为指定的delete 或者put请求  -->
	 <filter>
			<filter-name>HiddenHttpMethodFilter</filter-name>
			<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	  </filter>
	  <filter-mapping>
			<filter-name>HiddenHttpMethodFilter</filter-name>
			<url-pattern>/*</url-pattern>  <!--拦截所有  -->
		</filter-mapping>

5.在dispatcherServlet-servlet.xml配置文件顶部加这个

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

然后对SpringMVC 的配置文件 包含网站跳转逻辑的控制,配置   即注解的扫描的范围的指定

选择该xml下面的Namespaces  mvc勾选上

<!-- SpringMVC 的配置文件 包含网站跳转逻辑的控制,配置 -->
 <context:component-scan base-package="com.ice" use-default-filters="false">
 <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
 </context:component-scan>
 <!--配置视图解析器  -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/views/"></property>   <!--指定页面位置  -->
     <property name="suffix" value=".jsp"></property>    <!-- 指定后缀 -->
 </bean>
 <!-- 两个标准配置 -->
 <!-- 将springmvc不能处理的交给tomcat -->
 <mvc:default-servlet-handler/>
 <mvc:annotation-driven>
 <!-- 能支持springmvc更高级的一些功能  快捷的ajax请求, JSR303校验,映射动态请求 -->
 </mvc:annotation-driven>

6.   配置c3p0数据库相关

在applicationContext.xml 文件打开  然后选择namespace   aop(√) context (√) tx(√)


<context:component-scan base-package="com.ice">
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <!-- springmvc扫描带注解的这里spring不扫描 -->
</context:component-scan>

<!-- spring的配置文件 与主要配置及业务逻辑有关的 -->
<!-- 数据源的控制    事务控制  xxx -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<bean  id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
 <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
 <property name="driverClass"  value="${jdbc.driverClass}"></property>
 <property name="user" value="${jdbc.user}"></property>
 <property name="password" value="${jdbc.password}"></property>
</bean>


<!-- 配置和mybatis的整合 -->
<bean  id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--指定mybatis全局配置文件的位置  -->
    <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    <!--数据源就是上面的数据源  -->
    <property name="dataSource" ref="pooledDataSource"></property>
    <!-- mapper 文件放的位置 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
 </bean>
 
 
 <!-- 配置扫描器 将mybatis接口的实现加入到ioc容器中    -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 <!--扫描所有dao接口的mapper的实现 加入到ioc容器中  -->
   <property name="basePackage" value="com.ice.dao"></property>
 </bean >
 
 <!--事务控制  -->
 <bean  id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="pooledDataSource"></property>  <!-- 说明数据源 -->
 </bean>
 <!-- 开启注解的事务,使用xml配置的形式的事务(比较重要的使用这个) -->
 <aop:config>
 <!-- 切入表达式   下面是所有的方法多少个参数都能切入事务-->
 <aop:pointcut expression="execution(* com.ice.service..*(..))" id="txPoint"/>
 <!-- 配置事务增强 -->
 <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
 </aop:config>
 <!-- 配置事务增强如何切入 -->
 <tx:advice id="txAdvice" ><!-- 默认属性transaction-manager="transactionManager" -->
   <tx:attributes>
     <tx:method name="*"/>  <!--所有方法都是事务方法  -->
     <tx:method name="get*" read-only="true"/><!-- 以get开始的所有方法 -->
   </tx:attributes>
 </tx:advice>
 

此步骤创建了 mapper包   同时还有mybatis的配置文件 mybatis-config.xml 与applicationContext在同一目录下 

7.mybatis的配置  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">   <!--从mybatis官网的 getting started 获得  -->
  
  <configuration>
    <settings>
       <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 这个类从configuration xml  settings  mapUnderscoreToCamelCase  驼峰命名规则   -->
    </settings>
    <typeAliases >
     <package  name="com.ice.bean" />
    </typeAliases>
  </configuration>

然后就是 mybatis逆向工程 必须的xml 和java类 

这个是xxx.xml 直接放在包下面 跟pom.xml同级

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--数据库驱动,最好不要有中文字符,不然会找不到-->
    <!-- <classPathEntry location="D:/mysql-connector-java-5.1.40-bin.jar" /> -->
    <context id="cosmetic"   targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        
        
        <!--配置数据库链接信息账号密码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.204.131:3306/ssh_crud" userId="root" password="123456">
        </jdbcConnection>
   
         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        
        <!--生成javabean类存放位置-->
        <javaModelGenerator targetPackage="com.ice.bean" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        
        
        <!--生成映射文件mapper接口存放位置-->
        <sqlMapGenerator targetPackage="com.ice.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        
        
        <!--生成mapper接口、mapper.xml类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.ice.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        
        
        <!--生成对应表及类名,需要记住的一点是逆向工程无法生成关联关系,只能生成单表操作-->
        <table  tableName="emp"   domainObjectName="Employee" />
        <table tableName="dept"  domainObjectName="Department" />
     
    </context>
</generatorConfiguration>

xxx.java

package com.ice.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
 
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
 
public class MBGTest {

  //生成bean  mapper  的方法
	 
		public void generator() throws Exception{
	 
			List<String> warnings = new ArrayList<String>();
			boolean overwrite = true;
			//指定 逆向工程配置文件
			File configFile = new File("mbg.xml"); 
			ConfigurationParser cp = new ConfigurationParser(warnings);
			Configuration config = cp.parseConfiguration(configFile);
			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
					callback, warnings);
			myBatisGenerator.generate(null);
	 
		} 
		public static void main(String[] args) throws Exception {
			try {
				MBGTest generatorSqlmap = new MBGTest();
				generatorSqlmap.generator();
			} catch (Exception e) {
				e.printStackTrace();
			}
			
		}
	 
	

}

运行上面的java 就生成了所需的 mapper 以及实体类javabean 

我们的框架三部分就完成的差不多了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值