spring 配置一个基本的web项目
项目目录
记得要在Deployment Assembly里将项目外部依赖包 WEB-INF/lib 加进去
gradle项目,需要的包,其实这里没有用aop,如果用了,就需要其它的包了.还有第三方的包等等.
这里的maven中央库,用的是阿里云的.
build.gradle文件内容
applyplugin:'java'repositories{maven{url'http://maven.aliyun.com/nexus/content/groups/public/'}}configurations{//compile.excludemodule:'commons-logging'}dependencies{compilegroup:'jstl',name:'jstl',version:'1.2'compile("org.springframework:spring-context:${springVersion}")compile("org.springframework:spring-jdbc:${springVersion}")compilegroup:'org.springframework',name:'spring-web',version:"${springVersion}"compilegroup:'org.springframework',name:'spring-webmvc',version:"${springVersion}"compilegroup:'org.apache.commons',name:'commons-dbcp2',version:'2.1.1'compilegroup:'commons-lang',name:'commons-lang',version:'2.6'compilegroup:'ch.qos.logback',name:'logback-classic',version:'1.1.3'compilegroup:'org.logback-extensions',name:'logback-ext-spring',version:'0.1.2'compilegroup:'org.slf4j',name:'jcl-over-slf4j',version:'1.7.12'testCompile'junit:junit:4.12'}
gradle.properties文件内容
springVersion=4.3.3.RELEASE
maven的包
pom.xml文件内容
<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>weblearn</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>weblearn</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.3</version><configuration><source>1.8</source><target>1.8</target><excludes><exclude>commons-logging:commons-logging</exclude></excludes></configuration></plugin></plugins></build><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><org.springframework.version>4.3.3.RELEASE</org.springframework.version><org.slf4j.version>1.7.21</org.slf4j.version><org.junit.version>4.12</org.junit.version></properties><dependencies><!--https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstl-api--><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>javax.servlet.jsp.jstl-api</artifactId><version>1.2.1</version></dependency><!--https://mvnrepository.com/artifact/junit/junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${org.junit.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-core--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-context--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-test--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-beans--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-web--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${org.springframework.version}</version></dependency><!--JDBCDataAccessLibrary(dependsonspring-core,spring-beans,spring-context,spring-tx)DefinethisifyouuseSpring'sJdbcTemplateAPI(org.springframework.jdbc.*)--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${org.springframework.version}</version></dependency><!--https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp--><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.3</version></dependency><dependency><groupId>org.logback-extensions</groupId><artifactId>logback-ext-spring</artifactId><version>0.1.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>1.7.12</version></dependency></dependencies></project>
web.xml文件,这里用了Dispatchservlet,用了logback,还自定义了webAppRootKey值,这里没有明确指明spring的应用上下文,于是用了默认的文件,即同web.xml目录下的weblearn3-servlet.xml
<?xmlversion="1.0"encoding="UTF-8"?><web-appid="WebApp_ID"version="3.0"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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>weblearn3</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>weblearn3</servlet-name><url-pattern>/</url-pattern></servlet-mapping><context-param><param-name>webAppRootKey</param-name><param-value>weblearn3.root</param-value></context-param><context-param><param-name>logbackConfigLocation</param-name><param-value>/WEB-INF/config/logback3.xml</param-value></context-param><listener><listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class></listener></web-app>
与web.xml同一目录下的weblearn3-servlet.xml文件,这里用了,引入其它的配置文件,如数据库配置文件,还用了自动扫描,还使用了JSTL,指明解析的view名对应的物理文件在/WEB-INF/views/目录下,文件后缀名为.jsp
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xmlns:security="http://www.springframework.org/schema/security"xsi:schemaLocation="http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security.xsd"><importresource="datasource.xml"/><mvc:resourcesmapping="/resources/**"location="/resources/"/><mvc:annotation-driven/><context:component-scanbase-package="com.example.weblearn3"></context:component-scan><beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><constructor-argref="dataSource"/></bean><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/><propertyname="prefix"value="/WEB-INF/views/"/><propertyname="suffix"value=".jsp"/></bean></beans>
与web.xml同目录下的datasource.xml文件,这里用了dbcp2
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="dataSource"class="org.apache.commons.dbcp2.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="com.mysql.cj.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/myweibo?serverTimezone=UTC"/><propertyname="username"value="root"/><propertyname="password"value="123456"/><propertyname="initialSize"value="5"/><!--<propertyname="maxActive"value="10"/>--></bean></beans>
配置一个controller,HomeController.java文件,这里的home方法没有明确指明value值,所以默认该方法就是项目的主页.也可以指明@RequestMapping(value = "/", method = RequestMethod.GET),但是没有必要.
packagecom.example.weblearn3.controller;importjava.io.PrintWriter;importjava.io.StringWriter;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;@Controller@RequestMapping({"/","/homepage","index.html"})publicclassHomeController{privateLoggerlogger=LoggerFactory.getLogger(HomeController.class);@RequestMapping(method=RequestMethod.GET)publicStringhome(){try{inta=1/0;}catch(Exceptione){StringWritersw=newStringWriter();PrintWriterpw=newPrintWriter(sw);e.printStackTrace(pw);logger.error("Main错误:"+sw.toString());}System.out.println("home");return"home";}}
访问http://localhost:8080/weblearn3/即可
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。