专栏首页熊二哥Spring快速入门

Spring快速入门

Spring源码剖析一书,非常细致,但对于个人来说,意义不算特别的大,因此选其可用部分做个记录就好。

功能

示例

配置文件的解析

BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml")); this.clazz.getResourceAsStream(""); this.classLoader.getResourceAsStream(""); 声明bean的两大方式:<bean id="test" class="test.TestBean">, <tx:annotation-driven>

默认标签的解析 自定义标签的解析

doRegisterBeanDefinitions(xxx)

基本配置

<context:annotation-config /> <context:component-scan base-package="com.xxx.microfinance"> </context:component-scan>

AOP配置

<aop:aspectj-autoproxy /> SpringAOP使用JDK动态代理或者CGLIB来对目标创建代理,推荐使用JDK动态代理

JDBC

public class UserRowMapper implements RowMapper{     public Object mapRow(ResultSet set, int index) throws SQLException {         User person = new User(set.getInt("id"), set.getString("name"));         return person;}} public List<User> listUsers() {     @SuppressWarnings("unchecked")     List<User> list = jdbcTemplate.query("select * from user", new UserRowMapper());     return list;}

事务

<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj">

远程服务RMI(不常用)

<bean id="myRMI" class="org.Springframework..remoting.RMI.RMIServiceExporter">

JMS消息 spring-jms

安装ActiveMQ 可参考文档http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html

  • SpringMVC

不管是什么类型的javaWeb项目,首先需要记住的就是其入口一定是web.xml,其配置如下所示。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 5     <display-name>cm-web</display-name>
 6     <context-param>
 7         <param-name>contextConfigLocation</param-name>
 8         <param-value>classpath*:spring-core.xml</param-value>
 9     </context-param>
10     <listener>
11         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     <servlet>
14         <servlet-name>dispatcherServlet</servlet-name>
15         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
16         <init-param>
17             <param-name>contextConfigLocation</param-name>
18             <param-value>classpath*:spring-core.xml</param-value>
19         </init-param>
20     </servlet>
21     <servlet-mapping>
22         <servlet-name>dispatcherServlet</servlet-name>
23         <url-pattern>/</url-pattern>
24     </servlet-mapping>
25 </web-app>

以上的contextConfigLocation是Spring的核心配置文件,是Web与Spring结合的关键,常常在这部分遇到问题,applicationContext.xml简易配置如下。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3  xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xmlns:aop="http://www.springframework.org/schema/aop"
 6     xsi:schemaLocation="
 7 http://www.springframework.org/schema/beans
 8 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 9 http://www.springframework.org/schema/context
10 http://www.springframework.org/schema/context/spring-context-4.3.xsd
11 http://www.springframework.org/schema/aop
12 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
13 http://www.springframework.org/schema/tx
14 http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
15 ">
16     <bean id="viewResolver" class="org.Springframework.web.servlet.view.InternalResourceViewResolver">
17         <property name="prefix" value="/WEB-INF/jsp/"></property>
18         <property name="suffix" value=".jsp"></property>
19     </bean>
20     <aop:aspectj-autoproxy />
21     <context:annotation-config />
22     <context:component-scan base-package="com.bjork.routine.web">
23     </context:component-scan>
24 </beans>

Tip:这部分涉及的核心类分别是:关于配置的ContextLoaderListener;分发请求的DispatcherServlet。

springmvc基础maven包:spring-webmvc,

javaee-webapi, javax.servlet.jstl, javax.servlet-api, javax.servlet.jsp.jsp-api

常用plugin:org.maven.plugins.maven-compiler-plugin, maven-war-plugin

Spring常用注解

注解

示例

@Controller

表明该类是SpringMVC中的Controller

@RequestMapping

映射Web请求(访问路径和参数)、处理类和方法

@ResponseBody

将返回值放入response,而不是返回一个页面

@RequestBody

允许参数放入request体中,post请求, 而不是链接在地址后

@PathVariable

用于接收路径参数,如/news/001,可接收001为参数

@RestController

是个组合注解,组合了@Controller和@ResponseBody

  • Mybatis

官方文档(中文,非常详细):http://www.mybatis.org/mybatis-3/zh/index.html

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。

工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了

代理模式,在Aop实现中用到了JDK的动态代理

策略模式,第一个地方,加载资源文件的方式,使用了不同的方法,比如:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的接口Resource

单例模式,这个比如在创建bean的时候

 (以上问题可用于面试,哈哈)

Tip:Maven知识补充

Maven作用:统一开发规范和工具;统一管理jar包。同时如下图所示,结构非常清晰,测试拥有自己的代码区域,在发布时不带入生产环境。

Maven参数: modelVersion,对于Maven3只能是4.0.0; groupId组织名; artifactId项目名; version版本,包括快照; packaging打包方式包括jar,war,pom等;propertise定义配置属性; dependency设置jar包依赖,maven会先从本地获取jar包,获取不到时区远程仓库拉取; build表示与构建相关的配置,比如finalName最终构建后的名称。

Maven在建立父项目时,可以先建立子项目,然后在父目录创建pom.xml,其中packaging方式设置为pom,然后导入maven项目,完成建立。

  1. 郝佳. Spring源码深度解析[M]. 北京:人民邮电出版社, 2013.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring快速入门

    Spring源码剖析一书,非常细致,但对于个人来说,意义不算特别的大,因此选其可用部分做个记录就好。 ? 功能 示例 配置文件的解析...

    用户1216676
  • Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它。现在经过慢慢的成长,越来越觉得,Linux是每一个...

    用户1216676
  • Markdown快速入门

    现在博文写作次数渐渐变多,经常看到很多园友的博文样式都非常的美观,个人虽然是个土鳖,但对美也是有很强需求的,同时由于最近将要上线一个博客项目,因此也很关心如何可...

    用户1216676
  • 【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】

      之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希...

    弗兰克的猫
  • 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解

    上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置。今天我们来详细的研究一下DispatcherS...

    I Tech You_我教你
  • Spring快速入门

    Spring源码剖析一书,非常细致,但对于个人来说,意义不算特别的大,因此选其可用部分做个记录就好。 ? 功能 示例 配置文件的解析...

    用户1216676
  • Spring4.0MVC学习资料,Controller中的方法详解和使用(四)

    在以前,mvc的框架,基本上就是struts框架了。但是现在不一样了。springmvc出来了。spring的mvc框架不亚于struts了,springmvc...

    业余草
  • springMVC系列(二)——两种搭建方式

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • SpringMVC详解(一)------入门实例

      本系列教程我们将详细的对SpringMVC进行介绍,相信你在学完本系列教程后,一定能在实际开发中运用自如。 1、什么是 SpringMVC ?   在介绍什...

    IT可乐
  • SpringMVC<一> 基本结构与配置

    刚刚踏入SpringMVC的学习,有一定Strust2的使用经验,边看书看博客,边总结,如有不对的地方还希望各位大佬多多指正。

    Rekent

扫码关注云+社区

领取腾讯云代金券