springmvc笔记(来自慕课网)

1.准备工作:springmvc相关的jar包.

2.这里我们先用eclipse来操作.

首先看一个接口编程,后面的所有知识点都是通过这个接口编程引出的.

OneInterface.java

1 package gys;
2
3 public interface OneInterface {
4     String hello(String world);
5 }

OneInterfaceImpl.java

 1 package gys;
 2
 3 public class OneInterfaceImpl implements OneInterface{
 4
 5     @Override
 6     public String hello(String world) {
 7         return "从接口返回的是:"+world;
 8     }
 9
10 }

Run.java

package gys;

public class Run{    

    public static void main(String[] args) {
        OneInterface oif=new OneInterfaceImpl();
        System.out.println(oif.hello("思思博士"));
    }

}

这个地方可以通过接口的形式跑起来了.

下面看看使用springmc方式如何来跑起来这个项目

因为我们不是web项目,没有通过配置web.xml来配置,读取springmvc配置文件.

只能手写读取配置文件.

getBeanBase.java

 1 package gys;
 2
 3 import org.springframework.context.support.ClassPathXmlApplicationContext;
 4 //创建springmvc容器,获取配置文件中的bean.
 5 public class GetBeanBase {
 6     private ClassPathXmlApplicationContext context;
 7     private String springXmlpath;
 8     public GetBeanBase(){};
 9
10     public GetBeanBase(String springXmlPath){
11         this.springXmlpath=springXmlPath;
12     }
13
14     public void start(){
15         if(springXmlpath.equals("")||springXmlpath==null||springXmlpath.isEmpty()){
16             springXmlpath="classpath*:spring-*.xml";
17         }
18         try {
19             //创建spring容器
20             context=new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));
21             context.start();
22         } catch (Exception e) {
23             e.printStackTrace();
24         }
25     }
26
27     public void end(){
28         context.destroy();
29     }
30
31     @SuppressWarnings("unchecked")
32     protected <T extends Object> T getBen(String beanId){
33         return (T) context.getBean(beanId);
34     }
35
36     protected <T extends Object> T GetBeanBase(Class<T> clazz){
37         return context.getBean(clazz);
38     }
39 }

spring-ioc.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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"
 3     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 4     xsi:schemaLocation="
 5         http://www.springframework.org/schema/beans
 6         http://www.springframework.org/schema/beans/spring-beans.xsd
 7         http://www.springframework.org/schema/context
 8         http://www.springframework.org/schema/context/spring-context.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
11         http://www.springframework.org/schema/tx
12         http://www.springframework.org/schema/tx/spring-tx.xsd
13         http://www.springframework.org/schema/aop
14         http://www.springframework.org/schema/aop/spring-aop.xsd">
15
16         <bean id="oneInterface" class="gys.OneInterfaceImpl"></bean>
17 </beans>

Run.java

 1 package gys;
 2
 3 public class Run extends GetBeanBase{
 4     public Run(){
 5         super("classpath*:spring-ioc.xml");
 6         start();
 7     }
 8     public void testHello(){
 9         OneInterface oneInterface=super.getBen("oneInterface");
10         System.out.println(oneInterface.hello("传入的参数"));
11         end();
12
13     }
14
15     public static void main(String[] args) {
16         Run run=new Run();
17         run.testHello();
18     }
19
20 }

通过这个方式也是可以做到同样的输出.这里的GetBeanBase在后面很多地方使用.

spring注入:在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
常用的两种注入方式:
        设置注入
        构造注入

1.设置注入:

InjectionDao.java

package gys.dao;

public interface InjectionDAO {
    void save(String info);
}

InjectionDAOImpl.java

package gys.dao;

public class InjectionDAOImpl implements InjectionDAO{

    @Override
    public void save(String info) {
        System.out.println("保存数据:"+info);

    }

}

InjectionService.java

package gys.service;

public interface InjectionService {
    public void save(String info);
}

InjectionServiceImpl.java

 1 package gys.service;
 2
 3 import gys.dao.InjectionDAO;
 4
 5 public class InjectionServiceImpl implements InjectionService{
 6
 7     private InjectionDAO injectionDAO;
 8
 9     //设置注入,这里的set方法spring会自动调用,无需手动调用
10     public void setInjectionDAO(InjectionDAO injectionDAO) {
11         this.injectionDAO = injectionDAO;
12     }
13
14
15     @Override
16     public void save(String info) {
17         System.out.println("service接受参数:"+info);
18         info=info+":"+this.hashCode();
19         injectionDAO.save(info);
20     }
21 }

spring-ioc.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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"
 3     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 4     xsi:schemaLocation="
 5         http://www.springframework.org/schema/beans
 6         http://www.springframework.org/schema/beans/spring-beans.xsd
 7         http://www.springframework.org/schema/context
 8         http://www.springframework.org/schema/context/spring-context.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
11         http://www.springframework.org/schema/tx
12         http://www.springframework.org/schema/tx/spring-tx.xsd
13         http://www.springframework.org/schema/aop
14         http://www.springframework.org/schema/aop/spring-aop.xsd">
15
16     <!-- 设置注入 -->
17     <bean id="injectionService" class="gys.service.InjectionServiceImpl">
18     <!--InjectionServiceImpl类中必须有一个属性name,类型是ref,springmvc会自动调用这个属性的set方法. -->
19         <property name="injectionDAO" ref="injectionDAO"></property>
20     </bean>
21
22     <bean id="injectionDAO" class="gys.dao.InjectionDAOImpl"></bean>
23
24
25
26 </beans>

Run.java

 1 package gys;
 2
 3 import gys.service.InjectionService;
 4 public class Run extends GetBeanBase{
 5     public Run(){
 6         super("classpath*:spring-ioc.xml");
 7         start();
 8     }
 9     public void testSetter(){
10         InjectionService service=super.getBen("injectionService");
11         service.save("这是要保存的数据");
12         end();
13     }
14     public static void main(String[] args) {
15         Run run=new Run();
16         run.testSetter();
17     }
18
19 }

2.构造注入:

对上面的代码做一下改变:

InjectionServiceImpl.java

 1 package gys.service;
 2
 3 import gys.dao.InjectionDAO;
 4
 5 public class InjectionServiceImpl implements InjectionService{
 6
 7     private InjectionDAO injectionDAO;
 8
 9     //构造器注入
10     public InjectionServiceImpl(InjectionDAO injectionDAO){
11         this.injectionDAO=injectionDAO;
12     }
13
14     @Override
15     public void save(String info) {
16         System.out.println("service接受参数:"+info);
17         info=info+":"+this.hashCode();
18         injectionDAO.save(info);
19     }
20 }

spring-ioc.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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"
 3     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 4     xsi:schemaLocation="
 5         http://www.springframework.org/schema/beans
 6         http://www.springframework.org/schema/beans/spring-beans.xsd
 7         http://www.springframework.org/schema/context
 8         http://www.springframework.org/schema/context/spring-context.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
11         http://www.springframework.org/schema/tx
12         http://www.springframework.org/schema/tx/spring-tx.xsd
13         http://www.springframework.org/schema/aop
14         http://www.springframework.org/schema/aop/spring-aop.xsd">
15
16     <!-- 构造注入 -->
17     <bean id="injectionService" class="gys.service.InjectionServiceImpl">
18     <!--在类InjectionServiceImpl中有一个属性name,还必须必须有一个构造器,这个构造器的参数是name值   类型是ref -->
19         <constructor-arg name="injectionDAO" ref="injectionDAO" />
20     </bean>
21
22     <bean id="injectionDAO" class="gys.dao.InjectionDAOImpl"></bean>
23
24
25
26 </beans>

Run.java

 1 package gys;
 2
 3 import gys.service.InjectionService;
 4
 5 public class Run extends GetBeanBase{
 6     public Run(){
 7         super("classpath*:spring-ioc.xml");
 8         start();
 9     }
10
11     public void testCons(){
12         InjectionService service=super.getBen("injectionService");
13         service.save("这是要保存的数据");
14         end();
15     }
16
17     public static void main(String[] args) {
18         Run run=new Run();
19         run.testCons();
20     }
21
22 }

下班了,未完待续......

时间: 2024-10-20 02:23:11

springmvc笔记(来自慕课网)的相关文章

网站优化之-SEO在网页制作中的应用(信息来自慕课网课程笔记)

一.SEO基本介绍. 1.搜索引擎工作原理. 2.seo简介:SEarch Engine Optimization,搜索引擎优化.为了提升网页在搜索引擎自然搜索结果中的收录数量及排序位置而做的优化行为,就是为了使百度.谷歌这些搜索引擎多多收录我们精心制作的网页,同时在网页搜索相关内容时,使网页链接排在搜索引擎店面. 分为以下两种: 1):白帽SEO:起到规范,改良网站设计的作用,使之对搜索引擎和用户更加友好,并且网站也能从搜索引擎中获得合理流量,这是搜索引擎鼓励和支持的. 2):黑帽SEO:利用

PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)<<读写磁盘<<读写网络数据(网络延迟) 尽量操作内存和数据库,避免操作磁盘和网络数据,一定要避免读取大文件 一.优化网络请求: 可能存在的问题: 1.对方接口的不确定性因素 2.网络稳定性 优化网络请求措施: 1.设置超时时间(数字可以根据自己项目实际情况进行调整) a.连接超时:200ms

PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

使用ab进行压力测试 ab -n行数 -c并发数 url 重点关注下面两点: 1.Request per secend : 每秒可接收的请求数 2.Time per request : 每次请求所耗费的时间 优化1.多使用PHP自身的功能(如PHP定义的函数.常量),尽量少自己造轮子,自己写的代码冗余较多,可读性不高,且性能低下 PHP每次接受请求后,都会进行编译成底层语言,C->汇编->机器语言,同时接受大量请求,每个请求都会执行一次编译 示例代码如下: bad.php          

git学习-来自慕课网

git安装 https://git-scm.com/downloads 下载地址 配置用户信息 git config --global user.name "xxx" git config --global user.email "[email protected]" git config --list //查看参数配置信息 SourceTree的安装 git仓库 初始化仓库 git init 添加文件到版本库 git add git commit git comm

慕课网学习笔记02

如何利用CSS进行网页布局 内容来自慕课网 浮动(float)和 绝对定位(position:absolute)可以让元素脱离文档流. 清除浮动可以理解为打破横向排列. 清除浮动的关键字是clear,官方定义如下: 语法: clear : none | left | right | both 取值: none : 默认值.允许两边都可以有浮动对象 left : 不允许左边有浮动对象 right : 不允许右边有浮动对象 both : 不允许有浮动对象 CSS浮动及清除浮动通俗讲解 网页布局基础

安卓开发_慕课网_Fragment实现Tab(App主界面)

学习内容来自“慕课网” 这里用Fragment来实现APP主界面 思路: 底部横向排列4个LinearLayout,每个LinearLayout包含一个图片按钮和一个文字 1.默认显示第一个功能(微信)的图标为亮,其他三个为暗 2.点击相应的按钮,首先将所有的图标变暗,接着隐藏所有Fragment,再把点击的对应的Fragment显示出来,并把相应的图标显示亮 首先布局文件 activity_main.xml与ViewPager实现Tab的是不一样的 1 <LinearLayout xmlns:

安卓开发_慕课网_百度地图_实现定位

学习内容来自“慕课网” 在上一学习内容的基础上改进代码,需要学习定位功能的同学请先将我的上一篇百度地图基础的学习一下 http://www.cnblogs.com/xqxacm/p/4337054.html 第一次学习百度地图的定位功能,理解不深,相应注释都在代码中写出了 MainActivity.java 1 package com.example.map; 2 3 import com.baidu.location.BDLocation; 4 import com.baidu.locatio

安卓开发_慕课网_百度地图

学习内容来自“慕课网” 百度地图sdk下载 http://developer.baidu.com/ http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=9554&extra=page%3D1 1.获取秘钥 应用名称随便写,应用类型:android sdk 这里有一个 安全码  百度给了提示:Android SDK安全码组成:数字签名+;+包名. 数字签名获取方法:点击菜单栏最后面的Window 里面的最后一个 Preferenc

安卓开发_慕课网_百度地图_刮刮涂层效果

学习内容来自“慕课网” 很多电商APP中都有刮刮卡活动,刮开涂层,获取刮刮卡内部信息 原理图: 刮刮卡效果:通过画笔画笔来实现,黄色涂层,蓝色涂层,刮动则将两涂层共有的部分去掉,   就是DstOut对应的 效果 MainActivity.java 1 package com.example.gauguaka; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Menu; 6 7