项目结构如下:

spring配置

  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. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" >
  6.  
  7. <context:component-scan base-package="com.*" /><!-- 最好建一个父包,以便于扫描 -->
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="prefix"><value>/WEB-INF/pages/</value></property>
  10. <property name="suffix"><value>.jsp</value></property>
  11. </bean>
  12. </beans>

web.xml配置

  1. <web-app>
  2.   
  3.     <display-name>Spring MVC Application</display-name>
  4.   
  5.     <servlet>
  6.         <servlet-name>mvc-dispatcher</servlet-name>
  7.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  8.         <load-on-startup>1</load-on-startup>
  9.     </servlet>
  10.   
  11.     <servlet-mapping>
  12.         <servlet-name>mvc-dispatcher</servlet-name>
  13.         <url-pattern>/</url-pattern>
  14.     </servlet-mapping>
  15.   
  16.     <context-param>
  17.         <param-name>contextConfigLocation</param-name>
  18.         <param-value>classpath*:mvc-dispatcher-servlet.xml</param-value>
  19.     </context-param>
  20.   
  21.     <listener>
  22.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  23.     </listener>
  24.   
  25. </web-app>

spring里面有个类是读取properties文件的(这个和本工程无关,提一下)

  1. <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. <property name="locations">
  3. <list>
  4. <value>classpath:config.properties</value>
  5. </list>
  6. </property>
  7. </bean>

 page下的hello.jsp:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>My JSP 'index.jsp' starting page</title>
  13. <meta http-equiv="pragma" content="no-cache">
  14. <meta http-equiv="cache-control" content="no-cache">
  15. <meta http-equiv="expires" content="0">
  16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  17. <meta http-equiv="description" content="This is my page">
  18. <!--
  19. <link rel="stylesheet" type="text/css" href="styles.css">
  20. -->
  21. </head>
  22.  
  23. <body>
  24. This is my JSP page. <br>
  25. 本次调用方法是<b>${message }</b>
  26. </body>
  27. </html>

controller类: 

  1. package com.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.servlet.ModelAndView;
  10.  
  11. import com.service.Myservice;
  12.  
  13. @Controller
  14. @RequestMapping("/spring")
  15. public class MyController{
  16. @Autowired
  17. private Myservice my;
  18. @RequestMapping("/add")
  19. public ModelAndView add(HttpServletRequest request,
  20. HttpServletResponse response) {
  21. System.out.println("----add----");
  22. String xx=request.getParameter("name");
  23. System.out.println(xx);
  24. String name="123";
  25. my.add(name);
  26. return new ModelAndView("/hello", "message", "add");
  27. }
  28. @RequestMapping("/del")
  29. public ModelAndView del(HttpServletRequest request,
  30. HttpServletResponse response) {
  31. System.out.println("----del----");
  32. return new ModelAndView("/hello", "message", "del");
  33. }
  34. }

User类:

  1. package com.model;
  2.  
  3. import org.springframework.context.annotation.Scope;
  4. import org.springframework.stereotype.Component;
  5.  
  6. @Component
  7. @Scope("prototype") //设置成多例
  8. public class User {
  9. private int id=20;
  10. private String name="liming";
  11. public int getId() {
  12. return id;
  13. }
  14. public void setId(int id) {
  15. this.id = id;
  16. }
  17. public String getName() {
  18. return name;
  19. }
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23. }

proxy类:

  1. package com.proxy;
  2.  
  3. import org.springframework.stereotype.Component;
  4.  
  5. @Component
  6. public class MyProxy {
  7. public void add(){
  8. System.out.println("MyProxy");
  9. }
  10.  
  11. }

 

service接口:

  1. package com.service;
  2.  
  3. public interface Myservice {
  4. public void add(String name);
  5.  
  6. }

service实现类: 

  1. package com.service.impl;
  2.  
  3. import com.model.User;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7.  
  8. import com.proxy.MyProxy;
  9.  
  10. import com.service.Myservice;
  11.  
  12. @Service
  13. public class MyServiceImpl implements Myservice{
  14. @Autowired
  15. private MyProxy myProxy;
  16. @Autowired
  17. private User user;
  18.  
  19. @Override
  20. public void add(String name) {
  21. System.out.println("这是serviceImpl:"+name);
  22. System.out.println(user.getName()+"今年"+user.getId()+"岁了");
  23. myProxy.add();
  24. }
  25.  
  26. }

用tomcat运行后,输入http://localhost:8080/spring/spring/add?name="xx"

控制台结果为:

  1. ----add----
  2. "xx"
  3. 这是serviceImpl:123
  4. liming今年20岁了
  5. MyProxy

并且页面上显示

  1. This is my JSP page.
  2. 本次调用方法是add

  

 用到的基本包

 

  

 

 

 

  

 

  

spring全注解项目的更多相关文章

  1. spring-boot关于spring全注解IOC

    什么是IOC容器: Spring IoC 容器是一个管理Bean 的容器,在S pring 的定义中,它要求所有的IoC 容器都需要实现接口BeanFactory ,它是一个顶级容器接口 IoC 是一 ...

  2. java spring mvc 全注解

    本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工 ...

  3. 【1】springmvc4 + servlet3 零配置全注解入门项目helloword

    自从servlet3.0支持注解,使得javaweb项目使用全注解成为可能. 注解化将成为javaweb的发展方向.包括spring去年推出的spring-boot也是全部使用注解. 代码:https ...

  4. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(一)

    Spring更新到3.0之后,其MVC框架加入了一个非常不错的东西——那就是REST.它的开放式特性,与Spring的无缝集成,以及Spring框架的优秀表现,使得现在很多公司将其作为新的系统开发框架 ...

  5. Spring RESTful + Redis全注解实现恶意登录保护机制

    好久没更博了... 最近看了个真正全注解实现的 SpringMVC 博客,感觉很不错,终于可以彻底丢弃 web.xml 了.其实这玩意也是老东西了,丢弃 web.xml,是基于 5.6年前发布的 Se ...

  6. springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来

    自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用 ...

  7. spring4全注解web项目demo

    记得没接触框架的时候,写demo测试时真的很爽,新建web项目,然后随便写写servlet随便调试 框架越来越多,配置记不得了,整合容易出问题,集成新东西越来越少了,不敢动了. 这是个spring4的 ...

  8. 基于已构建S2SH项目配置全注解方式简化配置文件

    如果还不熟悉s2sh项目搭建的朋友可以先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 eclipse环境下基于已构建struts2项目整合spring+hiberna ...

  9. SpringBoot | 1.2 全注解下的Spring IoC

    前言 在学习SpringBoot之前,有几个Spring的重要的基础概念需要提一下,SpringBoot对这些基础概念做进一步的封装,完成自动配置.首先就是Spring的控制反转IOC,由于Sprin ...

随机推荐

  1. SpringMVC 初始化网站静态信息

    在网站开发中,一些元素经常被访问,例如 网页头部URL导航 的信息,以及Boot版权的信息,在各个页面都是重复出现的 如果每次渲染View都要通过Service层访问数据库 比较麻烦 也没有必要,但是 ...

  2. struts2验证框架1

    <!--该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理.如果用户需要指定多个请求后缀,则多个后缀之间以英文逗 ...

  3. sp_executesql介绍和使用

    原文:http://www.cnblogs.com/wanyuan8/archive/2011/11/09/2243483.html execute相信大家都用的用熟了,简写为exec,除了用来执行存 ...

  4. Win2008R2配置WebDeploy

    一.配置服务器 1.安装管理服务 2.点击管理服务进行配置 3.安装WebDeploy 3.1通过离线安装包方式安装: https://www.iis.net/downloads/microsoft/ ...

  5. [转]基于四叉树(QuadTree)的LOD地形实现

    实现基于四叉树的LOD地形时,我遇到的主要问题是如何修补地形裂缝. 本段我将描述使用LOD地形的优势,我实现LOD地形的思路,实现LOD地形核心模块的详细过程,以及修补地形裂缝的思路. 首先,LOD地 ...

  6. php基础08:改变数据类型

    <?php //1.获取数据类型 $num = 55; echo gettype($num); //integer //2.设置数据类型 settype($num, "string&q ...

  7. ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据

    引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Zab协议.通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们 ...

  8. [CareerCup] 8.5 Online Book Reader System 在线读书系统

    8.5 Design the data structures for an online book reader system. 这道题OOB的题让我们设计一个在线读书系统,还是没有任何提示,所以发挥 ...

  9. 地图坐标转换 -- 火星坐标与GPS坐标

    第一次处理地理位置的数据的人,没什么经验,往往掉入很多坑浪费不少时间.我也是刚刚从坑里爬出来.这篇博文主要是把入门GPS轨迹分析的经验总结一下,以方便大家少走些弯路. (1)可视化 GPS 路径 刚拿 ...

  10. Jenkins问题汇总

    1.在jenkins里使用shell,如果shell起子进程会被jenkins强制杀掉的解决方法. http://scmbob.org/start-process-in-jenkins.html