Spring入門到精通,1.入門


1.簡介

1.1 編寫背景

個人編寫了基於Spring的大大小小數個項目,能夠熟練的編寫,但是對於其內部原理不是精通,所以想寫一系列的文章,從基礎開始到深入原理進行學習和總結.

1.2 學習前提

1.知道Maven是如果管理項目的. Maven官方鏈接 https://maven.apache.org/

2.使用Eclipse EE 或者 Spring Tool Suite™ (STS) 個人推薦sts

3.有基本的Java編程基礎,知道MVC等概念

2.Spring 入門項目

編寫一個顯示服務器當前時間的入門項目.

2.1 使用的環境

JDK:    1.8.0_91

IDE:     STS 3.7.3.RELEASE

Maven: Apache maven 3.3.9

Server: Apache Tomcat 7.0

2.2 步驟詳解

1.新建一個Maven項目

2.選擇建立簡單項目

3.填寫項目基本信息

剛建立完成有錯誤很正常,因為我們建立的是最簡單的項目,不包含其他任何配置

4.新增Web.xml,dispatcher-servlet.xml,applicationContext.xml文件,修改pom.xml文件

先在webapp下面新建一個WEB-INF文件夾,然后新建一個文件,命名為web.xml,然后依次建立pages文件夾和dispatcher-servlet.xml

另外在src/main/resources 下面新建 applicationContext.xml文件

文件的內容依次為

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "
 4     version="2.5">
 5     <display-name>Learn-Spring-Web</display-name>
 6 
 7     <context-param>
 8         <param-name>contextConfigLocation</param-name>
 9         <param-value>classpath:applicationContext.xml</param-value>
10     </context-param>
11     <listener>
12         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
13     </listener>
14 
15     <servlet>
16         <servlet-name>dispatcher</servlet-name>
17         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
18         <init-param>
19             <param-name>contextConfigLocation</param-name>
20             <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
21         </init-param>
22         <load-on-startup>1</load-on-startup>
23     </servlet>
24     <servlet-mapping>
25         <servlet-name>dispatcher</servlet-name>
26         <url-pattern>/*</url-pattern>
27     </servlet-mapping>
28 
29     <filter>
30         <filter-name>encodingFilter</filter-name>
31         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
32         <init-param>
33             <param-name>encoding</param-name>
34             <param-value>UTF-8</param-value>
35         </init-param>
36         <init-param>
37             <param-name>forceEncoding</param-name>
38             <param-value>true</param-value>
39         </init-param>
40     </filter>
41     <filter-mapping>
42         <filter-name>encodingFilter</filter-name>
43         <url-pattern>/*</url-pattern>
44     </filter-mapping>
45 
46     <welcome-file-list>
47         <welcome-file>index.html</welcome-file>
48     </welcome-file-list>
49 </web-app>
web.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" 
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans 
 5                            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 6 
 7     <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
 8         <property name="templateLoaderPath" value="/WEB-INF/pages/" />
 9         <property name="freemarkerSettings">
10             <props>
11                 <prop key="template_update_delay">0</prop>
12                 <prop key="defaultEncoding">UTF-8</prop>
13                 <prop key="url_escaping_charset">UTF-8</prop>
14                 <prop key="boolean_format">true,false</prop>
15                 <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
16                 <prop key="date_format">yyyy-MM-dd</prop>
17                 <prop key="number_format">0.##########</prop>
18                 <prop key="whitespace_stripping">true</prop>
19                 <prop key="classic_compatible">true</prop>
20                 <prop key="template_exception_handler">ignore</prop>
21             </props>
22         </property>
23     </bean>
24 
25     <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
26         <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
27         <property name="cache" value="true" />
28         <property name="prefix" value="" />
29         <property name="suffix" value=".ftl" />
30         <property name="contentType" value="text/html;charset=UTF-8" />
31         <property name="requestContextAttribute" value="request" />
32         <property name="exposeSpringMacroHelpers" value="true" />
33         <property name="exposeRequestAttributes" value="false" />
34         <property name="exposeSessionAttributes" value="false" />
35         <property name="allowSessionOverride" value="true" />
36     </bean>
37     
38 </beans>
dispatcher-servlet.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns:aop="http://www.springframework.org/schema/aop" 
 4     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:task="http://www.springframework.org/schema/task"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans
 7                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 8                      http://www.springframework.org/schema/context
 9                      http://www.springframework.org/schema/context/spring-context-3.0.xsd
10                      http://www.springframework.org/schema/task
11                      http://www.springframework.org/schema/task/spring-task-3.0.xsd
12                      http://www.springframework.org/schema/aop
13                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
14                      http://www.springframework.org/schema/mvc
15                      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
16                      
17     <context:annotation-config />
18     <mvc:annotation-driven />
19 
20     <!-- 默認掃描的包路徑 -->
21     <context:component-scan base-package="com.helios.**">
22         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
23     </context:component-scan>    
24 </beans>
applicationContext.xml
<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.helios</groupId>
    <artifactId>learn</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.3.3.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!-- spring 相關 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</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-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- freemarker -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.25-incubating</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
pom.xml

5.maven更新項目

6.新建控制器

在src/main/java 下面新建包 com.helios.controller, 然后新建 MainController 類

 

7.編寫首頁內容

在WEB-INF/pages 下面新建一個文件 名為 index.ftl

 

8.運行和測試

 

9.編寫時間內容

MainController中新增加一個方法 toTime, pages 下新增一個 time.ftl 文件

 

10.運行和測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM