基于注解的SpringMVC基本配置

使用注解方式可以很快的配置出Spring-mvc,用法要比xml方式简单,理论上xml中只需要配置两部:

<mvc:annotation-driven/>

<!--开启注解方式 -->

<context:component-scanbase-package="com.tf.edu.spring.controller"/>

<!--指定 注解扫描路径 -->

XML中是不是少了很多行东西呢!没错这些缺少的方式都需要通过注解来配置

@Controller这个注解是用来表示Controller控制器的,所以我们在我们的类中加入一个Controller注解

@RequestMapping这个注解用来表示一个地址栏路径

@Controller

public class NoteAction{    

    @RequestMapping(value="/demoA")

    public String demoA()throws Exception {

        return"Demo/DemoA.jsp";

    }

}

这时候我们就可以通过   url/工程名/demoA来访问了

如果想给这个类下的所有方法都加一层地址,可以在类上加一个@RequestMapping

@RequestMapping用法很多

@Controller

@RequestMapping("/bbtForum.do")

public class BbtForumController {

    @RequestMapping(params ="method=listBoardTopic")

    public String listBoardTopic(@RequestParam("id")int topicId,User user) {

        bbtForumService.getBoardTopics(topicId);

        System.out.println("topicId:"+topicId);

        System.out.println("user:"+user);

        System.out.println("calllistBoardTopic method.");

        return"listTopic";

    }

}

这段代码用用来访问method参数=listBoardTopic的请求/bbtForum.do?method=listBoardTopic通过参数来进行匹配

这里我们要引入一个新的概念,就是service(业务)层,完成一个功能不一定只需要访问一次Dao层就可以实现,所以我们把一个完整的功能封装成service层来使用

@Service("baseService")

public class BaseServiceImimplements BaseService{

    @Resource(name="baseDao")

   //@service此注解用来实例化bean,用法和Component 一样但具有语义化

    private BaseDao dao;

    //注入注解,将baseDao注入到service

    @Override

    publicvoid textService() {

        dao.save();

    }

}

然后通过@Resource(name="baseService")将这个属性注入到Controller中,通过注入属性来调用方法

 

然后我们来看一下Dao层,不说了先上代码,再说

@Repository(value ="baseDao")

//用来申明这个时候Dao,用来实例化bean,作用和Component一样但具有语义化

public class BaseDaoImimplements BaseDao {

    Loggerlogger = LogManager.getLogger(BaseDaoIm.class);

    private SqlSession sqlSession;

    @Resource(name="sqlSessionFactory")

    //这里注入sqlSessionFactory的工程beanspring.xml中定义的

    publicvoid setSqlSessionFactory(SqlSessionFactorysqlSessionFactory) {

            this.sqlSession=new SqlSessionTemplate(sqlSessionFactory);

            //这里讲工厂类生成sqlSession模板

    }

    @Override

    publicvoid save() {

        //dao层代码,这里更具业务需求来写,我是瞎写的

        int n=sqlSession.selectOne("all_num");

        System.out.println("sql_find_count="+n);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值