使用SSM框架所做的带头像注册项目的整理

首先先简单介绍一下SSM框架。

SSM框架是spring,springmvc,mybatis组成的。1,springmvc应用于web层,用于处理用户的请求,例如用户在地址栏输入地址,springmvc就负责拦截请求,并调用controller层中相应的方法,最终把结果返回给用户。

2,spring则主要是通过IOC(控制反转)技术促进了低耦合。(例如应用了Ioc后,一个对象依赖的其它对象会通过被动的方式传递进来。),还有aop(面向切面)技术,该技术主要用于事务设计以及lo4j日志。还有使用容器去管理项目中的类。

3,Mybatis则负责数据库相关业务,可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO。

之前通过北京尚学堂的教学视频,跟着动手写了一个关于带头像注册的功能,所以打算写这篇博客记载一下个人对于这个项目的一些理解。

首先应该配置上下文参数,对应的文件为applicationContext.xml

<context-param>

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

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

</context-param>

然后,配置springmvc:

<!-- SpringMVC前端控制器 -->

<servlet>

<!-- 设置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:springmvc.xml</param-value>

</init-param>

<!-- 设置springmvc的优先级 -->

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

</servlet>

<!-- 配置映射,设置拦截范围 -->

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

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

</servlet-mapping>

<!-- 监听器 -->

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

</listener-class>

</listener>

<!-- 字符编码过滤器 -->

<filter>

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

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

</filter-mapping>

配置springmvc.xml文件:

配置相应的头文件之后:

<!-- 扫描注解 -->

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

    <!-- 注解驱动 -->

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

    <!-- 静态资源 -->

    <mvc:resources location="/js/" mapping="/js/**"></mvc:resources>

    <mvc:resources location="/images/" mapping="/images/**"></mvc:resources>

    <mvc:resources location="/files/" mapping="/files/**"></mvc:resources>

    <!-- Mutilpart解析器(用于用户头像上传的相关操作。) -->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

配置application.xml文件(spring和mybatis的整合配置文件):

也需要配置相关的头文件之后:

default-autowire="byName"

这个表示自动注入,属性名和传入值的名相同时可以不用配置。

    <!-- 注解扫描 -->

    <context:component-scan base-package="com.bjsxt.service.impl"></context:component-scan>

    <!-- 加载属性文件 -->

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

    <!-- 数据源 -->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

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

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

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

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

    </bean>

    <!-- SqlSessionFactory -->

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

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

     <property name="typeAliasesPackage" value="com.bjsxt.pojo"></property>

    </bean>

    <!-- 扫描器 -->

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

     <property name="basePackage" value="com.bjsxt.mapper"></property>

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

    </bean>

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

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

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

    </bean>

    <!-- 声明式事务 -->

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

     <tx:attributes>

     <tx:method name="ins*"/>

     <tx:method name="del*"/>

     <tx:method name="upd*"/>

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

     </tx:attributes>

    </tx:advice>

    <!-- 配置aop -->

    <aop:config>

     <aop:pointcut expression="execution(* com.bjsxt.service.impl.*.*(..))" id="mypoint"/>

     <aop:advisor advice-ref="txAdvice" pointcut-ref="mypoint"/>

</aop:config>

通过上面的代码片段,总结来说,applicationContext.xml文件需要配置的内容有注解扫描,加载属性文件(数据库的),配置数据源(实现连接数据库),配置SqlSessionFactory,配置扫描器,事务管理器,声明式事务,配置aop。通过default-autowire="byName" 这段代码来实现自动注入。

web.xml需要配置上下文参数,监听器,字符编码过滤器,springmvc前端控制器等。

springmvc需要配置的有扫描注解,注解驱动,静态资源,Mutilpart解析器等。

最后的配置文件需要配置log4j日志处理文件还有数据库属性文件。

在完成了基本环境配置后,就可以使用SSM框架来简洁地写业务代码了。

具体的编写代码一般来说分为:controller层,mapper层,pojo层,service层和service.impl层,还有一些jsp文件。

其中pojo层表示的是实体类,也就是数据库中每个表对应着一个类,表的对应列对应着类的属性。

controller层表示的是接受用户的输入并调用模型和视图去完成用户的需求,负责转发请求,对请求进行处理。

mapper层中定义了接口,然后在接口中写需要实现的方法,通过注解的sql语句去实现其功能。

例如:

@Update("update files set count=count+1 where id=#{0}")
  int updCountById(int id);

这个方法就实现了修改的功能。

service层中定义了一些用户需求需要实现的方法。

service.impl层中的类对应实现了service层中的接口,并且通过定义一个对应的mapper层中的类,调用该类中对应的方法来实现需求。

还需要编写jsp文件来呈现界面让用户看,jsp界面一般需要导入jstl核心库,然后java部分代码使用el表达式和jstl标签去编写。有时候还需要使用ajax技术来实现异步刷新功能,使用jquery来编写动态效果。

以上结构中,controller层就代表了mvc架构中的C,也即为控制器层。

mapper层,service层和service.impl层代表了mvc架构中的M,也即是模型层。

jsp代表了mvc架构中的V,也即是视图层。

总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

由于此篇文章只是简单介绍了SSM框架和MVC结构对应的基础功能和意义,源代码连接在文章下方。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值