maven搭建ssm框架项目

一,搭建项目

在这里插入图片描述注意勾选项目骨架
在这里插入图片描述
注意web项目 用的是war包。
生成后其项目的框架为:
在这里插入图片描述

二,引入xml文件,和配置mvc各层package。

生成的prom.xml文件:

<!--加载全局页,项目欢迎页-->

        <welcome-file-list>
            <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
        </welcome-file-list>
        
        
配置项目的参数信息:
<properties>

</properties>

项目构建,运行环境配置
<build>

<plugin>
插件。jdk编译版本的插件
jdk的编译版本,和tomcat的版本
</plugin>

<resource>
资源
</resource>


</build>

项目依赖的jar包

<dependencies>

<dependency>
配置框架
在官网上面下
</dependency>

</dependencies>

比如配置ssm
<dependencies>
<!--spring-->
<!--springMvc-->
<!--mybatis-->
<!--log4j-->
<!--mysql-diver-->
<!--数据源 jdbc c3p0  druid德鲁伊-->
<!--jackson数据转换-->
</dependencies>
<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.senqi</groupId>
	<artifactId>ProductManage</artifactId>
	<version>1.0.0</version>
	<packaging>war</packaging>
	<name>ProductManage</name>


	<properties>
		<webVersion>3.1</webVersion>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>5.0.1.RELEASE</spring.version>
		<mybatis.version>3.4.5</mybatis.version>
		<jackson.version>2.9.3</jackson.version>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<port>8080</port>
					<path>/</path>
					<uriEncoding>utf-8</uriEncoding>
				</configuration>
			</plugin>
		</plugins>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
				<filtering>true</filtering>
			</resource>
		</resources>
	</build>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<!-- 红辣椒 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.18</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.41</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.5</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>



		<!-- ***********框架*********** -->
		<!-- spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</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-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</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-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.11</version>
		</dependency>

		<!-- mybatis -->
		<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.1</version>
		</dependency>

		<!-- mybatis处理json格式:jackson -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<!-- mybatis代理:cglib代理 -->
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>3.2.5</version>
		</dependency>

	</dependencies>

</project>

applicationContext.xml文件:

<!-- 1.使用placeHodler读取外部配置(数据库信息配置文件) -->
	<context:property-placeholder location="classpath:db.properties" />

	<!-- 2.配置数据库连接池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		init-method="init" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>


	<!-- 3.创建sessionFactory对象 SqlSessionFactoryBean -->
	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 3.1关联数据源 -->
		<property name="dataSource" ref="dataSource" />

		<!-- 3.2读取mybatis相关的配置信息(读取mybatis.cfg.xml文件) -->
		<property name="configLocation" value="classpath:mybatis.cfg.xml" />

		<!-- 3.3配置别名注解扫描(配置别名的类在什么包下:@Alias("user")) -->
		<property name="typeAliasesPackage" value="com.senqi.entity" />

		<!-- 3.4关联映射文件 -->
		<property name="mapperLocations" value="classpath:com/senqi/mapper/*Mapper.xml" />
	</bean>

	<!-- 4.配置事务管理器 DataSourceTransactionManager -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 5.tx事务模板 What -->
	<tx:advice id="crudAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<!-- 从上往下匹配 When -->
			<tx:method name="get*" read-only="true" />
			<tx:method name="select*" read-only="true" />
			<tx:method name="list*" read-only="true" />
			<tx:method name="query*" read-only="true" />
			<tx:method name="find*" read-only="true" />
			<tx:method name="*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>

	<!-- 6.AOP相关的配置:切入事务 -->
	<aop:config>
		<!-- 6.1配置切入点 Where -->
		<aop:pointcut expression="execution(* com.senqi.service..*.*(..))"
			id="pointcut" />
		<!-- 6.2把Where和What、When关联 -->
		<aop:advisor advice-ref="crudAdvice" pointcut-ref="pointcut" />
	</aop:config>


	<!-- 7.基于注解:配置service,dao,web -->
	<!-- 注解包扫描 -->
	<context:component-scan base-package="com.senqi" />

	<!-- Mapper接口扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.senqi.mapper" />
	</bean>

1.使用placeHodler读取外部配置(数据库信息配置文件)
2.配置数据库连接池
3.创建sessionFactory对象 SqlSessionFactoryBean

3.1关联数据源
3.2读取mybatis相关的配置信息(读取mybatis.cfg.xml文件)
3.3配置别名注解扫描(配置别名的类在什么包下:@Alias(“user”))
3.4关联映射文件
4.配置事务管理器 DataSourceTransactionManager
5.tx事务模板 What
6.AOP相关的配置:切入事务
7.基于注解:配置service,dao,web

注解包扫描
context:component-scan base-package=“com.senqi”
Mapper接口扫描器

其他xml文件不做阐述
在这里插入图片描述配置文件的地方
在这里插入图片描述web.xml文件的地方

配置mvc层:
在这里插入图片描述

三,写一个简单的商城系统。

简单不做阐述
第一个点:
ajax注册验证登录名是否存在

<script src="<%=request.getContextPath() %>/js/jquery-3.1.1.min.js" type="text/javascript"></script>

jquery导入

<table>
			<tr>
		<td>账号:</td>
		 <td>
<input type="text" name="loginName" onblur="checkName(this)"/>
			<br/>
			<span id="msg"></span>
		</td>
		</tr>

table片段 在登录名中的触发onblur。

<script type="text/javascript">
function checkName(obj) {
	var val = obj.value;
	
	// 如果输入的内容不为空
	if(val) {
		// 发送ajax判断
		$.post("checkName", {loginName: val}, function(data){
			if(data) {
				$("#msg").html("用户名已存在");
				$("[type=submit]").attr("disabled", "disabled");
			} else {
				$("#msg").html("");
				$("[type=submit]").removeAttr("disabled");
			}
			
		}, "json");
	} 
	/* attr("disabled"这句话的意思是如果用户名已经被占用,[type=submit]类型选择器找到对应是提交按钮然后屏蔽按钮 ,相对应的如果成功则取消屏蔽*/
}



</script>
	/**
	 * 用户名的判重
	 * @param loginName
	 * @return
	 */
	@RequestMapping("/checkName")
	@ResponseBody
	public String checkName(String loginName) {
		
		User result =us.checkName(loginName);
		
		String flag = "";
		if(result != null) {
			flag = "true";
		} else {
			flag = "false";
		}
		
		return flag;
	}
	

controller层

第二个点:
登录时判断登录帐号和密非空

<form method="post" action="add" onsubmit="return check()">

    <script>
        function check() {
            var username = document.getElementById("uname");
            var password = document.getElementById("upwd");
            if (username.value == "") {
                alert("用户名不能为空!");
                return false;
            } else if (password.value == "") {
                alert("密码不能为空!");
                return false;
                return true;
            }
        }
    </script>

第三个点
在maper中参数传递是否使用注解:

User getUserBaaNameAndPwd(User user);

	User getUserByName(String loginName);

	void save(User user);
 User  selectByName(@Param("uname") String uname);

在多参数中,可以直接用对象传递,不需要注解。单参数可以直接用,也不需要注解。只有在多个参数中(如果两个参数在不同的类中,如果多个参数都在同一类(比如user对象)直接传对象 也不需要参数)才会使用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值