spring java项目零配置_使用IDEA搭建一个Spring + Spring MVC 的Web项目(零配置文件)...

话不多说,直接上代码:

注解是Spring的一个构建的一个重要手段,减少写配置文件,下面解释一下一些要用到的注解:

@Configuration 作用于类上面,声明当前类是一个配置类(相当于一个Spring的xml文件)

@ComponentScan(“xxx”) 作用于类上面,自动扫描xxx包名下所有使用@Service、@Component、@Repository和@Controller的类,并注册为Bean

@Bean 作用与类和方法上,相当于Spring配置文件bean节点

@EnableWebMvc 作用于类,开启一些默认配置,如一些ViewResolver或者MessageConverter

@RequestMapping 作用于类、方法,配置URL和方法之间的映射

@RequestBody 作用于参数前,允许request的参数在request体中,而不是在直接链接在地址后面

@ResponseBody 作用于返回值、方法上,支持将返回值放在response体中,而不是返回一个页面。

@RequestParam 作用于参数前,将form的对应name值映射到当前参数中。

项目的创建这里就省略啦........

pom.xml配置文件:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

4.0.0

com.oukele.hellowrod

HelloWord

1.0-SNAPSHOT

war

org.springframework

spring-context

5.1.3.RELEASE

org.springframework

spring-core

5.1.3.RELEASE

org.springframework

spring-beans

5.1.3.RELEASE

org.springframework

spring-web

5.1.3.RELEASE

org.springframework

spring-webmvc

5.1.3.RELEASE

javax.servlet

javax.servlet-api

4.0.1

javax.servlet

jstl

1.2

View Code

导入静态资源:

在WEB-INF中,直接粘贴boostrap的标准资源,并新建一个views文件夹,将index.jsp拉进去,将自己写的Login.jsp(想要示例的登陆页面的话在本文的最下面有个github地址可以去下载)复制进去,效果如下(顺便删了web.xml):

3dc617031e80e318864de88213aab0eb.png

java文件夹下面的目录结构

5c74c8da08423cd8e534083e7ae8e23d.png

创建SpringConfig类(类似配置文件):

新建类SpringConfig类,继承WebMvcConfigurerAdapter,并配置一些必要的方法。

packagecom.oukele.spring;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.*;importorg.springframework.web.servlet.view.InternalResourceViewResolver;importorg.springframework.web.servlet.view.JstlView;

@Configuration//声明当前类是一个配置类(类似于 spring_xxx.xml 的文件)

@EnableWebMvc//若无此注解,WebMvcConfigurerAdapter无效

@ComponentScan//自动扫描spring注解 比如@Service、@Component、@Repository和@Controller的类,并注册为Bean

public class SpringConfig extendsWebMvcConfigurerAdapter {//添加一个ViewResolver解析view

@Bean//相当于Spring配置文件bean节点

publicInternalResourceViewResolver viewResolver(){

InternalResourceViewResolver viewResolver= newInternalResourceViewResolver();

viewResolver.setPrefix("/WEB-INF/views/");

viewResolver.setSuffix(".jsp");

viewResolver.setViewClass(JstlView.class);returnviewResolver;

}//注册静态资源,没注册的话,网站是访问不了的

@Overridepublic voidaddResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/css/**").addResourceLocations("/WEB-INF/css/");

registry.addResourceHandler("/js/**").addResourceLocations("/WEB-INF/js/");

registry.addResourceHandler("/fonts/**").addResourceLocations("/WEB-INF/fonts/");

}//根目录的时候直接跳转到登录界面

@Overridepublic voidaddViewControllers(ViewControllerRegistry registry) {

registry.addViewController("/").setViewName("Login");

}

}

与xml配置对比:

7b81b1816c9e4efba25258e2e36df550.png

创建WebInit类(web.xml配置文件):

在 WebInit类中实现 WebApplicationInitializer接口 并实现方法,方法的内容如下:

packagecom.oukele.spring;importorg.springframework.web.WebApplicationInitializer;importorg.springframework.web.context.support.AnnotationConfigWebApplicationContext;importorg.springframework.web.servlet.DispatcherServlet;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.ServletRegistration;public class WebInit implementsWebApplicationInitializer {public void onStartup(ServletContext servletContext) throwsServletException {

AnnotationConfigWebApplicationContext ctx= newAnnotationConfigWebApplicationContext();

ctx.register(SpringConfig.class);

ctx.setServletContext(servletContext);

ServletRegistration.Dynamic dynamic= servletContext.addServlet("dispatcher",newDispatcherServlet(ctx));

dynamic.addMapping("/");

dynamic.setLoadOnStartup(1);

}

}

web.xml文件 与  WebInit 类 的对比:

36e23bf1aabd0a905ad1473df0674e19.png

753b41fc78bb7fc5bbbc2ce32f098bd2.png

new DispatcherServlet(ctx); --> 在上写文中注册Spring配置文件,添加到DispatcherServlet上下文中。

添加Controller:

新建一个LoginController类。

packagecom.oukele.spring.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;

@Controllerpublic classLoginController {

@RequestMapping("/login")public String login(@RequestParam("username") String username, @RequestParam("pwd") String pwd) {

String forword= null;if (username.equals("oukele") && pwd.equals("oukele")) {

forword= "index";//登录成功跳转到index.jsp

} else{

System.out.println("no such user");

forword= "Login";//登录失败跳转到Login.jsp继续登录操作

}returnforword;

}

}

添加Tomcat,运行:

e1ffc78a97f9824497d9a06e5e0aa9a0.png

这里已经设置根目录是Login.jsp页面。

运行结果:

c11526fec1b7478d8fa64862fc0ffc84.png

到这里就结束啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值