spring全注解的方式构建web三层结构
来源:互联网 发布:php文章管理系统 初学 编辑:程序博客网 时间:2024/05/18 20:10
最近在看spring framework 的官方文档,看到spring的全注解的方式来dao,serviece,controller,没有xml,感觉非常的方便,所以在此记录一下
环境:maven项目,jdk1.8,spring-4.3.5
1.首先配置spring配置java类,此操作相当于原来的配置xml文件,java类如下:
SpringIocXmlConfig.java类
package org.spring.ioc.core.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration//表明这是一个配置管理java类,这个java类相当于spring.xml 文件@ComponentScan(basePackages="org.spring.ioc.core")//指明采用注解的方式--扫描org.spring.ioc.core这个包下(包括子包)所用的注解,例如@Service,@Controller,@Autowire等等public class SpringIocXmlConfig {}
2.配置dao层,有两个文件SpringIocDao.java接口和SpringIocDaoImpl.java实现类
SpringIocDao.java类
package org.spring.ioc.core.dao;public interface SpringIocDao {void testAnnotation();}
SpringIocDaoImpl.java实现类
package org.spring.ioc.core.dao.impl;import org.spring.ioc.core.dao.SpringIocDao;import org.springframework.stereotype.Repository;@Repository//默认情况下向IOC 容器中注入一个名为“springIocDaoImpl",即在默认情况下注入的是类名(首字母小写)这里可以用@Repository("springIocDaoImpl")代替public class SpringIocDaoImpl implements SpringIocDao {@Overridepublic void testAnnotation() {System.out.println("spring ioc annotation test successful");}}
3.配置service层,两个文件SpringIocService接口,SpringIocServiceImpl实现类
SpringIocService接口
package org.spring.ioc.core.service;public interface SpringIocService {void testAnnotation();}
SpringIocServiceImpl实现类
package org.spring.ioc.core.service.impl;import org.spring.ioc.core.dao.SpringIocDao;import org.spring.ioc.core.service.SpringIocService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Service//解释同@Repositorypublic class SpringIocServiceImpl implements SpringIocService {@Autowired//默认是按类型进行装配,如果有两个SpringIocDao的实现,则需用@Qualifier("实现类在IOC中的名称")进行注释public SpringIocDao springIocDao;@Overridepublic void testAnnotation() {springIocDao.testAnnotation();}}
4.controller层 ,一个java文件,SpringIocController.java文件
SpringIocController.java类
package org.spring.ioc.core.controller;import org.spring.ioc.core.bean.NoInterfaceBean;import org.spring.ioc.core.service.SpringIocService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;@Controller//经过测试发现@Controller默认情况下是向spring IOC容器中注入一个名为“springIocController”的bean,相当于@Controller("springIocController")public class SpringIocController {@Autowiredprivate SpringIocService springIocService;@Autowiredprivate NoInterfaceBean noInterfaceBean;public void testAnnotation(){springIocService.testAnnotation();}public void testNointerfaceAnnotation(){noInterfaceBean.testNointerfaceAnnotation();}}
5.测试类
SpringAnnotationMain.java类
package org.spring.ioc.core.test;import org.spring.ioc.core.config.SpringIocXmlConfig;import org.spring.ioc.core.controller.SpringIocController;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/*** 测试spring(采用全注解的方式)* @author lijun**/public class SpringAnnotationMain {public static void main(String[] args) {@SuppressWarnings("resource")ApplicationContext context = new AnnotationConfigApplicationContext(SpringIocXmlConfig.class);//加载配置文件,这里是加载一个java类,相当于以前的加载xmlSpringIocController controller = context.getBean("springIocController",SpringIocController.class);//得到SpringIocController实例controller.testAnnotation();controller.testNointerfaceAnnotation();}}
根据以上代码即可搭建一个全注解的springIOC三层结构,输出的结果为
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
spring ioc annotation test successful
spring ioc annotation no interface
- spring全注解的方式构建web三层结构
- Web系统的三层结构
- Spring的注解方式
- 三层结构的简单描述及优点,bs三层,web三层,j2ee三层
- WEB三层结构的设计思路
- 使用 maven 构建 全注解spring+ hibernate4 + struts2 项目
- maven 构建 全注解 spring mvc + mybatis mysql 项目
- spring + spring mvc + mybatis 整合项目 全注解方式
- 三层结构及WEB
- 构建一个.net Remoting 程序(真正的三层结构)
- 构建一个.net Remoting 程序(真正的三层结构)
- spring 事务的注解方式
- spring注解方式的优缺点
- spring的注解注入方式
- Spring MVC 全注解的方式实现单个和多个文件上传
- 基于全注解方式的SSH框架
- 全注解方式的SSH基础框架
- SpringMVC之全注解方式进行web开发
- 【poj 1704】Georgia and Bob
- Mongdb 3.4 复制集 分片 官方默认配置 无认证 Windows环境
- Android 利用Canvas实现双指拖动和双指缩放图片(二)-图片拖出边界检测
- Android Studio在创建项目是一直处于building “project name”gradle project info的解决办法
- Hibernate正向工程
- spring全注解的方式构建web三层结构
- Android 简单实现贪吃蛇源码
- 【uml类图】《大话设计模式》摘抄
- jdbc连接数据库
- centos安装vsftp
- 为你详解Linux安装GCC方法
- JS Date(日期)对象
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
- Jackson Annotation 格式化日期时区问题