首页 > 代码库 > Spring3.0入门笔记(1)

Spring3.0入门笔记(1)

 

这几天利用项目结项后的空隙,入门学习下Idea+maven+spring+springMVC。作为一个菜鸟,好记性不如烂笔头,在这里简要写下一些笔记。

1.idea里没有类似myeclipse的workspace的概念,与之类似的是project。同事一个project下可以有多个module,这里的module类似于myeclipse中的project。

2,maven是一个帮助构建(build)项目,管理jar包依赖的工具。它的使用和工作原理跟我现在用的myeclipse直接丢(引入)jar包的方法存在蛮大不同。

3,spring3.0是一个好用,精妙的java框架(书上这么说的)。

4,一些配置文件的用处以及内容:


  a, pom.xml 配置maven模块依赖关系和依赖内容。

技术分享
<?xml version="1.0" encoding="UTF-8"?><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">    <parent>        <artifactId>chapter</artifactId>        <groupId>com.smart</groupId>        <version>3.0-SNAPSHOT</version>    </parent>    <modelVersion>4.0.0</modelVersion>    <artifactId>chapter1</artifactId>    <version>3.1-SNAPSHOT</version>    <name>第一章示例</name>    <description>Spring 快速入门</description>    <packaging>war</packaging>    <dependencies>        <!--① 依赖的Spring模块类库 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-beans</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jdbc</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <!--② 依赖的持久化类库-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>${mysql.version}</version>        </dependency>        <!--③ 依赖的公共类库-->        <dependency>            <groupId>commons-dbcp</groupId>            <artifactId>commons-dbcp</artifactId>            <version>${commons-dbcp.version}</version>        </dependency>        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>${aspectjweaver.version}</version>        </dependency>        <dependency>            <groupId>cglib</groupId>            <artifactId>cglib</artifactId>            <version>2.2</version>        </dependency>        <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->        <dependency>            <groupId>commons-logging</groupId>            <artifactId>commons-logging</artifactId>            <version>1.1.1</version>        </dependency>        <!--④ 依赖的WEB类库-->        <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>${jsp-api.version}</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>taglibs</groupId>            <artifactId>standard</artifactId>            <version>${standard.version}</version>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>${servlet-api.version}</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>            <version>${jstl.version}</version>        </dependency>        <!--⑤ 依赖的测试类库-->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>${org.springframework.version}</version>        </dependency>        <dependency>            <groupId>org.testng</groupId>            <artifactId>testng</artifactId>            <version>${testng.version}</version>        </dependency>    </dependencies></project>
pom.xml


  b, applicationContext.xml 这是spring框架的核心配置文件。包括扫描类包,数据源/模板,事务管理器等。

技术分享
<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd       http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-3.1.xsd       http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd       http://www.springframework.org/schema/aop       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">        <!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 -->    <context:component-scan base-package="com.smart.dao"/>    <context:component-scan base-package="com.smart.service"/>    <!-- 配置数据源 -->    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close"         p:driverClassName="com.mysql.jdbc.Driver"        p:url="jdbc:mysql://localhost:3306/sampledb"        p:username="root"        p:password="root" />    <!-- 配置Jdbc模板  -->    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"        p:dataSource-ref="dataSource" />            <!-- 配置事务管理器 -->    <bean id="transactionManager"        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"        p:dataSource-ref="dataSource" />    <!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->    <aop:config proxy-target-class="true">        <aop:pointcut id="serviceMethod"            expression=" execution(* com.smart.service..*(..))" />        <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />    </aop:config>    <tx:advice id="txAdvice" transaction-manager="transactionManager">        <tx:attributes>            <tx:method name="*" />        </tx:attributes>    </tx:advice></beans>
applicationContext.xml


  c, web.xml web项目的通用配置文件。配置项目访问路由的分发处理(基于servlet?)和视图解析。

技术分享
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"         xmlns="http://java.sun.com/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </context-param>    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>    <servlet>        <servlet-name>viewspace</servlet-name>        <servlet-class>            org.springframework.web.servlet.DispatcherServlet        </servlet-class>        <load-on-startup>2</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>viewspace</servlet-name>        <url-pattern>*.html</url-pattern>    </servlet-mapping></web-app>
web.xml


  d, viewspace-servlet.xml springMVC配置文件。

技术分享
<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd       http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-3.1.xsd">    <!-- 扫描web包,应用Spring的注解 -->    <context:component-scan base-package="com.smart.web"/>    <bean id="defaultAnnotationHandlerMapping"          class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />    <bean id="annotationMethodHandlerAdapter"          class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />    <!-- 配置视图解析器,将ModelAndView及字符串解析为具体的页面 -->    <bean            class="org.springframework.web.servlet.view.InternalResourceViewResolver"            p:viewClass="org.springframework.web.servlet.view.JstlView"            p:prefix="/WEB-INF/jsp/"            p:suffix=".jsp"/></beans>
viewspace-servlet.xml


  e, log4j.properties 日志配置文件

技术分享
log4j.rootLogger=DEBUG,A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
log4j.properties


5,示例项目的目录结构(一个简易的登陆功能)。

技术分享

你可以在 这里 下载到我的示例项目。

萌新入门,理解浅薄。有问题欢迎在评论区提出,我们一起讨论。

 

“种一棵树,最好的时机是十年前,其次是现在。”

Spring3.0入门笔记(1)