您的位置:首页 > 编程语言 > Java开发

基于注解的SpringMVC基本配置

2016-09-07 21:59 344 查看
使用注解方式可以很快的配置出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的工程bean在spring.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);
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc 注解