文章目录
- 一、快速入门
- 二、Spring配置文件
- 三、Spring三种构造方式
- 注解开发
- 全注解开发
- Spring集成junit步骤
- SpringMVC开发步骤
- SpringMVC页面跳转
- Spring回写数据
一、快速入门
org.springframework
spring-context
5.0.5.RELEASE
- 创建Bean
- 创建Dao接口
- 创建Dao实现类实现接口
- 在springxml中写入Bean
public interface UserDao {
void save();
}
public class UserService implements UserDao {
public void save(){
System.out.println("spring~");
}
}
二、Spring配置文件
| 项目 | Value |
|---|
| id | 标识符,不可重复 |
| class | 权限类名 |
| scope | 范围 |
| init-method | 初始化方法 |
| destroy-method | 销毁方法 |
- scope中有很多标签
- singleton:单一的,单例的(默认),在Spring文件被加载时,实例化Bean实例,生命周期与容器一致
- prototype:多例的,每次调用getBean方法时实例化一个Bean,对象只要在使用中就活着,长时间不用就销毁
三、Spring三种构造方式
注解开发
| 注解 | 说明 |
|---|
| @Component | 类上用于实例化bean |
| @Controller | web层类上用于实例化bean |
| @Service | 使用在service层用于实例化bean |
| @Repositoryr | dao层类上用于实例化bean |
| @Autowired | 使用在字段上用于根据类型依赖注入 |
| @Qualifier | 和@Autowired 一起使用用于根据名称依赖注入 |
| @Resource | 相当于@Autowired + @Qualifier根据名称进行依赖注入 |
| @Value | 注入普通属性 |
| @Scope | 标注bean的作用范围 |
全注解开发
| 注解 | 说明 |
|---|
| @Configuration | 标志该类是Spring的核心配置类 |
| @PropertySource | |
| @Bean(“dataSource”) | |
| @ComponentScan(“com.tiger”) | |
| @import(dataSourceConfiguration.class) | 核心配置类中引入其他配置类 |
Spring集成junit步骤
- 导入SpringJunit坐标
- 用@Runwith替换原来的运行期
- 使用@ContextConfiguration指定配置文件或配置类
- @Autowired注入需要测试的对象
- 创建测试方法
SpringMVC开发步骤
- 导入SpringMVC相关坐标
- 配置SpringMVC核心控制器DispathcerServlet
- 创建Contrller类和视图页面
- 使用注解配置Controller类中业务方法的映射地址
- 配置SpringMVC核心文件spring-mvc.xml
- 客户端发起请求测试
SpringMVC页面跳转
- 返回字符串形式(quick)
- 返回ModelAndView形式(quick2)
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username"})
public String save(){
System.out.println("Controller save running");
return "/success.jsp";
}
@RequestMapping("/quick2")
public ModelAndView save2(){
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("username","hello");
modelAndView.setViewName("/success.jsp");
return modelAndView;
}
@RequestMapping("/quick3")
public ModelAndView save3(ModelAndView modelAndView){
modelAndView.addObject("username","hello");
modelAndView.setViewName("/success.jsp");
return modelAndView;
}
@RequestMapping("/quick4")
public String save4(Model model){
model.addAttribute("username","你好啊");
return "/success.jsp";
}
}
Spring回写数据
@RequestMapping("/quick5")
public String save5(HttpServletRequest request){
request.setAttribute("username","沙丁鱼罐头");
return "/success.jsp";
}
@RequestMapping("/quick6")
public void save6(HttpServletResponse response) throws IOException {
response.getWriter().print("response");
}
@RequestMapping("/quick7")
@ResponseBody//告诉SpringMVC框架不进行页面跳转
public String save7(){
return "沙丁鱼罐头";
}
@RequestMapping("/quick8")
@ResponseBody//告诉SpringMVC框架不进行页面跳转
public String save8(){
return "{"username":"zhangsan","age":"18"}";
}
@RequestMapping("/quick9")
@ResponseBody//告诉SpringMVC框架不进行页面跳转
public String save9() throws JsonProcessingException {
User user =new User();
user.setName("zhangsan");
user.setAge("18");
ObjectMapper mapper=new ObjectMapper();
String json=mapper.writevalueAsString(user);
return json;
}
@RequestMapping("/quick10")
@ResponseBody//告诉SpringMVC框架不进行页面跳转
public User save10() throws JsonProcessingException {
User user =new User();
user.setName("zhangsan");
user.setAge("18");
return user;
}