① 如何用java类配置Spring MVC
采用的工具主要包括:maven、myeclipse
1、使用mavan新建一个webmvc项目:
在myeclipse使用 file-》new project-》maven project-》选择webapp模板,填写项目名称,点击确认
2、新建好了项目后,按照maven项目的风格新建主要工程目录,包括src/main/java、src/main/resources、src/test/java、src/test/resources;按个人喜好和需要分配目录,以上只是一般常用的目录结构。
3、编辑pom.xml使用maven来引入项目依赖包,主要要spring核心框架依赖包:spring-core,spring-beans,springmvc需要的spring-mvc,spring-web,以及web项目需要的javax.servlet-api,还有使用spring标记需要的spring-context和spring-context-support,spring-test是测试用。关于maven的详细用法可查询相关资料。
4、我们先在src/java/main下新建一个config包,里面用来放置我们项目的配置类
5、我们先编写第一个Java cofing的配置类AppInitializer,这个类继承了 ,之前我们有个疑问,以往都是通过配置web.xml文件来关联spring配置的,那这里的web.xml文件里面没有配置,是怎么拉起spring的呢?原因就在于这个AppInitalizer类了,继承了的AppInitalizer的作用就类似以前的spring-context.xml,并且会在web项目运行初始化被自动发现并加载,这就是java config的魅力所在了,不管在哪里声明了配置了,只要继承了,它就可以被自动加载。
6、AppInitializer类需要实现三个方法,其中RootConfig和WebConfig是我们下面要新建的两个关键配置类,而getServletMappings只需要返回一个string的列表,这里的{“/”}的意思的监听访问url下所有的请求。
7、RootConfig.class的内容如下,它可以放在和AppInitializer同个目录下,主要用来配置spring的bean,这里只关注web项目的实现,所以暂时没有具体内容
8、WebConfig的内容如下,也是建议放在和AppInitializer同级目录下,用来配置DispatcherServlet。@Configuration 声明表示这个类是spring config类,@EnablcWebMvc声明来启动springMVC,@ComponentScan声明来指定java bean的扫描目录。待会再讲解这里需要配置哪些java bean
9、WebConfig类需要继承WebMvcConfigureAdapter类,并实现两个基本方法。viewResolver指定了视图所在目录,视图后缀等类型。 并通过的enable()要求对静态资源的访问请求转发到servlet容器的默认servlet上。
10、然后我们现在需要新建一个控制器来控制请求的转发了。最简单的配置如下,意思是将“/homepage”的请求返回home字符串。这里虽然返回的只是一个字符串,框架会结合之前的webconfig类的配置将其解析为WEB-INF/views目录下的home.jsp文件。
11、那么到这里的我们的请求转发的基本流程就差不多结束了,最后要创建一个WEB-INF/views目录,并在其下创建home.jsp文件。
12、使用maven打包项目,并使用tomcat7来运行项目看看效果。
② java 静态类怎么使用SpringMVC的注解功能
1.方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new ("applicationContext.xml");
ac.getBean("beanId");
说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
2.方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext(); 另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出 WebApplicationContext 对象: WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
3.方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
4.方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
5.方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
Spring初始化时,会通过该方法将ApplicationContext对象注入。
③ Java的SpringMVC框架操作数据库,一定要建立对应的实体类吗,能不能通过直接嵌入sql命令方式操作数据库
springmvc只是视图层控制容器不能直接操作数据库,要通过持久层hibernate或者mybatis等框架对数据库操作。可以不用实体,使用jdbc直接查询数据库也行,查出来转换成json字符串
④ java spring mvc框架怎么搭建与使用
可以用两种方式来搭建Spring框架,其中第一种是利用MyEclipse工具里自带的来自动配置Spring,第二种是由自己手动去配置,这两者的区别在于,第一种稍微简单,第二种稍微复杂,但是第二种方式能配置较高版本的Spring框架,主要还是看个人的爱好而定.
二.第一种方式:自动配置方式。
(1).首先,新建一个Java项目,项目名为one_spring。
(2).选中这个Java项目,点击鼠标右键,选择MyEclipse下的Add Spring Capabilites这个选项,也可以从菜单栏里选择,为了使我们创建的这个Java项目可以移植,所以可以选择最后一个箭头所指向处,点击Browse按钮,选择放置jar包的文件夹,点击Create New Folder后,新建一个文件夹叫lib,专门放置jar包:点击OK即可,然后再点击Next按钮:接着再点击Finish按钮即完成了自动配置Spring的开发环境,点击Finish按钮后,项目文件结构就配置完成了
第二种方式:手动配置Spring环境方式。
(1).首先,先所需要的Spring包,我的为Spring4.1.6这个版本的,完后得到几个文件夹,配置Spring所需的jar包就在libs下,鼠标右键选择Build Path — >configure Build Path这个选项,点开之后点击右边Add External JARS按钮,即红色箭头指向处,把我们到的包下的libs文件夹的jar包添加进去,我们可以把核心的jar包添加进去即可,点击OK按钮就可以了,如果是Web项目的话,就把这些核心jar包导入进WEB-INF下的lib文件夹下。
总结:不管是手动配置还是自动配置Spring的环境,都是大同小异的,主要按个人喜好选择就好。 注:还是建议把配置文件放在src目录底下,使用类路径的方式来找到!这样比较简单,也不会出现错误!
⑤ spring mvc的作用是什么
Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还可以是Struts这样的Web框架。
⑥ MVC在JAVA开发中的应用主要有哪些
MVC是一种设计思想,将逻辑实现与数据展示分开,更好的组织代码流程。
MVC不止针对一种程序语言,其他程序语言也有MVC的实现
Java中最经典的当然是SpringMVC
⑦ java 怎么调试spring mvc
可以有以下几种方法
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new ("applicationContext.xml");
ac.getBean("beanId");
说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext(); 另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出 WebApplicationContext 对象: WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
Spring初始化时,会通过该方法将ApplicationContext对象注入
⑧ 一个java项目可以同时具有spring boot和springmvc架构吗
1,这俩不是一个作用的,所以本身不存在冲突
2,可以单独用springMVC, 它属于基础功能框架,而spring boot是对springMVC进行包装,默认包含了springMVC的一些配置, 简化新应用的初始搭建以及开发过程
3,非常推荐使用spring boot,但是需要学习了解内在的关系
⑨ java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller
一,从controller往视图传递值,controller---->视图
1)简单类型,如int,String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试)。
(而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller方法里)
2)可以用Map<String,Object>,其键值可以在页面上用EL表达式${键值名}得到,
3)也可以用Model类对象来传递,有addAttribute(key,value)方法,其键值可以在页面上用EL表达式${键值名}得到,
如果用addAttribute(value)这个方法,会将类型名的首字母改成小写后,作为键值名传递过去,例如"ok"在页面上用${string}得到,而一个复合类对象,如User类对象,页面上用${user}得到该对象,用${user.propertyName}得到其属性,这是用Model的一大优势。
例如,model.addAttribute(newUser("my姓名","我的爱好有游泳打球"));
这样页面上就能用${user.name}和${user.hobby}打印对应属性
@RequestMapping(value={"/","/hello"})
publicStringhello(intid,Map<String,Object>map){
System.out.println(id);
System.out.println("hello");
map.put("hello","world");
return"hello";
}
@RequestMapping(value="/say")
publicStringsay(@RequestParamintid,Modelmodel){
System.out.println("say");
model.addAttribute("hello","value");
//使用Object的类型作为key,String-->string
model.addAttribute("ok");
return"hello";
}www.2cto.com
⑩ 如何用Java类配置Spring MVC
Step 1:先用eclipse创建一个Maven的WEB工程. pom.xml文件如下:
1 <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">
2 <modelVersion>4.0.0</modelVersion>
3 <groupId>ocr</groupId>
4 <artifactId>ocr</artifactId>
5 <version>0.0.1-SNAPSHOT</version>
6 <packaging>war</packaging>
7
8 <properties>
9 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
10 <javaee-api.version>7.0</javaee-api.version>
11 <spring.version>4.2.0.RELEASE</spring.version>
12 <junit.version>4.12</junit.version>
13 </properties>
14
15 <dependencies>
16 <dependency>
17 <groupId>javax</groupId>
18 <artifactId>javaee-api</artifactId>
19 <version>${javaee-api.version}</version>
20 </dependency>
21 <dependency>
22 <groupId>junit</groupId>
23 <artifactId>junit</artifactId>
24 <version>${junit.version}</version>
25 </dependency>
26 <dependency>
27 <groupId>org.springframework</groupId>
28 <artifactId>spring-context</artifactId>
29 <version>${spring.version}</version>
30 </dependency>
31 <dependency>
32 <groupId>org.springframework</groupId>
33 <artifactId>spring-aop</artifactId>
34 <version>${spring.version}</version>
35 </dependency>
36 <dependency>
37 <groupId>org.springframework</groupId>
38 <artifactId>spring-webmvc</artifactId>
39 <version>${spring.version}</version>
40 </dependency>
41 <dependency>
42 <groupId>org.springframework</groupId>
43 <artifactId>spring-web</artifactId>
44 <version>${spring.version}</version>
45 </dependency>
46
47 <dependency>
48 <groupId>javax.servlet</groupId>
49 <artifactId>jstl</artifactId>
50 <version>1.2</version>
51 </dependency>
52
53 <dependency>
54 <groupId>commons-logging</groupId>
55 <artifactId>commons-logging</artifactId>
56 <version>1.1.3</version>
57 </dependency>
58 </dependencies>
59
60
61 <build>
62 <plugins>
63 <plugin>
64 <artifactId>maven-compiler-plugin</artifactId>
65 <version>3.3</version>
66 <configuration>
67 <source>1.7</source>
68 <target>1.7</target>
69 </configuration>
70 </plugin>
71 <plugin>
72 <artifactId>maven-war-plugin</artifactId>
73 <version>2.6</version>
74 <configuration>
75 <warSourceDirectory>WebContent</warSourceDirectory>
76 <failOnMissingWebXml>false</failOnMissingWebXml>
77 </configuration>
78 </plugin>
79 </plugins>
80 </build>
81 </project>
Step 2: 配置DispatcherServlet. 需要创建一个Web初始化类OcrWebAppInitializer, 继承自
1 package com.chry.ocr.config;
2
3 import org.springframework.web.servlet.support.;
4
5 public class OcrWebAppInitializer extends {
6
7 @Override
8 protected Class<?>[] getRootConfigClasses() {
9 return new Class<?>[] { RootConfig.class };
10 }
11
12 @Override
13 protected Class<?>[] getServletConfigClasses() {
14 return new Class<?>[] { WebConfig.class }; //ָ指定Web配置类
15 }
16
17 @Override
18 protected String[] getServletMappings() { //将DispatcherServlet映射到"/"
19 return new String[] { "/" };
20 }
21
22 }
Step 3: 配置Spring MVC视图解析WebConfig.java, 需要要创建一个类继承自WebMvcConfigurerAdapter
1 package com.chry.ocr.config;
2
3 import org.springframework.context.annotation.Bean;
4 import org.springframework.context.annotation.ComponentScan;
5 import org.springframework.context.annotation.Configuration;
6 import org.springframework.web.servlet.ViewResolver;
7 import org.springframework.web.servlet.config.annotation.;
8 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
9 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
10 import org.springframework.web.servlet.view.InternalResourceViewResolver;
11
12 @Configuration
13 @EnableWebMvc //启动SpringMVC
14 @ComponentScan("com.chry.ocr.controller") //启动组件扫描
15 public class WebConfig extends WebMvcConfigurerAdapter {
16
17 //配置JSP视图解析器
18 @Bean
19 public ViewResolver viewResolver() {
20 InternalResourceViewResolver resolver = new InternalResourceViewResolver();
21 resolver.setPrefix("/WEB-INF/views/");
22 resolver.setSuffix(".jsp");
23 resolver.(true);
24 return resolver;
25 }
26
27 //配置静态资源的处理
28 @Override
29 public void ( configurer) {
30 configurer.enable(); //对静态资源的请求转发到容器缺省的servlet,而不使用DispatcherServlet
31 }
32
33 }
Step 4: 配置RootConfig.java
1 package com.chry.ocr.config;
2
3 import org.springframework.context.annotation.ComponentScan;
4 import org.springframework.context.annotation.ComponentScan.Filter;
5 import org.springframework.context.annotation.Configuration;
6 import org.springframework.context.annotation.FilterType;
7 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
8
9 @Configuration
10 @ComponentScan( basePackages={"com.chry.ocr"},
11 excludeFilters = { @Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)}
12 )
13
14 public class RootConfig {
15
16 }
至此, 传统方式中需要通过web.xml进行配置的东西就已将全部完成有上面三个java类(OcrWebAppInitializer, RootConfig, WebConfig)完成. 可以开始写Controller和页面代码了
Step 5: 编写一个HomeController.java, 它将输出"hello World from Spring MVC"到home.jsp页面
1 package com.chry.ocr.controller;
2
3 import static org.springframework.web.bind.annotation.RequestMethod.*;
4 import org.springframework.stereotype.Controller;
5 import org.springframework.web.bind.annotation.RequestMapping;
6 import org.springframework.web.bind.annotation.RequestMethod;
7 import org.springframework.web.servlet.ModelAndView;
8
9 @Controller
10 public class HomeController {
11 @RequestMapping(value = "/", method=GET)
12 public ModelAndView home() {
13 String message = "Hello world from Spring MVC";
14 return new ModelAndView("home", "message", message);
15 }
16 }
Step 6: 编写一个jsp页面, 按照我们在视图解析器和Controller里面的配置,放在WEB-INF/views/home.jsp中
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="UTF-8"%>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
6 <style type="text/css">
7 </style>
8 </head>
9 <body>
10 <br>"http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4 <head>
5 <title>Spring MVC Tutorial chry</title>
11 <div style='text-align:center;'>
12 ${message}
13 </div>
14 </body>
Step 7: 至此所有工作完成, 使用maven的"clean install"选项进行编译打包后,在执行,访问http://localhost:8080即可. 页面效果和工程结构如下,工程里面没有web.xml