zoukankan      html  css  js  c++  java
  • 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>
    View Code

    以上的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>
    View Code

    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.
  • 相关阅读:
    InstallShield2015制作安装包----------卸载前结束执行中的进程
    InstallShield2015制作安装包----------安装过程中修改文件内容
    InstallShield2015制作安装包----------卸载后删除安装目录和文件
    InstallShield2015制作安装包----------安装后实现自动运行
    snmp getTable demo :iftable ipAddresstable
    snmp
    Android Lazy url
    eclipse key
    demo16Toast
    demo15 AlertDialog
  • 原文地址:https://www.cnblogs.com/xiong2ge/p/spring_fast.html
Copyright © 2011-2022 走看看