JavaEE

期末考试复习资料

1、SpringIOC的概念

IOC不是一种技术而是一种设计思想,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;

IOC控制反转:Spring提供了IOC容器来帮我们生成所需要的对象。也就是说在我们原先的对象中有用到其他对象的地方Spring会帮我们来注入。不用我们再去考虑这些问题。由容器来帮忙创建及注入依赖对象。

2、SpringMVC相较Servlet充当控制器的好处

1、封装代码、维护成本低、耦合性低。在MVC模式中,三个层各司其职,一旦那一层的需求发生了变化,就只需要更改相应的层中代码而不会影响到其它层的代码。

2、有利于开发中的分工,提高开发效率,在MVC模式中,按层把系统分开,更好的实现开发中的分工。

3、组件重用,有利于代码复用,重用性高。

3、持久层框架MyBatis相较于JDBC的好处

与JDBC相比,减少代码量

最简单的持久化框架、小巧并简单易学

SQL代码从程序代码中彻底分离,可重用,支持编写动态SQL

提供映射标签,支持对象与数据库的关系映射

4、简述RESTful风格接口的特征及好处

​ 是一种面向资源服务的设计方式
​ 它不是不是标准,而是一种设计模式
​ 面向资源,面向服务的思想
​ 使用它可以让接口更加易读

5、利用SpringMVC技术设计一个RESTful风格的产品(Product)模块的Controller,对外提供search、add、update、delete方法接口。

@Controller
@RequestMapping("/")
public class ProductController {
//    search
    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public String search(@PathVariable("id")int id)
    {

        return "";
    }
//    add
    @RequestMapping(value = "/",method = RequestMethod.POST)
    public String add(Product product)
    {

        return "";
    }
//    update
    @RequestMapping(value = "/",method = RequestMethod.PUT)
    public String update(Product product)
    {
        return "";
    }
//    delete
    @RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
    public String delete(@PathVariable("id")int id)
    {
        return "";
    }

}

6、Spring提供的AOP技术的实现原理。

1、Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理、日志、缓存等。
2、它是使用动态代理实现的,在内存中临时为方法生成一个AOP对象,这个对象包含目标对象的所有方法,在特定的切点做了增强处理,并回调原来的方法。
3、Spring AOP的动态代理主要有两种方式实现,JDK动态代理和cglib动态代理。
4、JDK动态代理通过反射来接收被代理的类,但是被代理的类必须实现接口,核心是InvocationHandler和Proxy类。

5、cglib动态代理的类一般是没有实现接口的类,cglib是一个代码生成的类库,可以在运行时动态生成某个类的子类,所以,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理

7、Spring提供的对Service层事务的支持的原理及好处

​ Spring提供的支持有包括编程式和声明式,在实际应用中,首推声明式事务
​ 在Service中配置事务可以使用注解、xml、JavaConfig配置方式;
​ 其原理是使用ThreadLocal类实现的
​ 基于业务的原则性需求,将一个原子性业务的操作做了事务控制,更加符合现实场景

8、简述ajax原理及在当今行业项目开发中的应用

ajax是异步请求局部刷新
它的底层实现是由XMLHTTPRequest对象实现的,该对象由浏览器提供
在一些热词提示、网络地图上提供了了无刷新效果,增强用户体验度
当前企业中使用ajax非常频繁,尤其在前后端分离的系统中,前端通过ajax与后台进行通信,用json数据进行交互。

9、假设前台通过表单中的文件域上传一张图片、后台使用SpringMVC技术,请书写前后台关键性代码。

前台代码:


<form action="/upload/file" method="post" enctype="multipart/form-data">
    <input type="file" name="file" /><br>
    <input type="submit" value="上传"  />
</form>

后台代码:

@Controller
@RequestMapping("/upload")
public class Upload_Controller {
    public String file(@RequestParam("file") MultipartFile file) throw Exception
    {
        
        String fileName = file.getOriginalFilename();
        File fileObj = new File("文件保存路径\" + fileName);
        file.transferTo(fileObj);
    }
}

10、原始的使用jdbc查询数据库和 Mybatis查询数据库都要会写代码!!!!

//        原始JDBC查询方法
        String sql = "";
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/mydbs";
        Connection connection = DriverManager.getConnection(url,"root","root");
        Statement statement = connection.createStatement();
//        查
        ResultSet set = statement.executeQuery(sql);
//        增删改
        boolean flag = statement.execute(sql);
        
=====================================Mybatis方法==========================================
//        Mybatis查询方法 创建对象映射
        <resultMap id="BaseResultMap" type="com.yue.Model.User">
        <id column="id"  property="id"/>
        <result column="image"  property="image"/>
        <result column="name"  property="name"/>
        <result column="password"  property="password"/>
//       一对一
            <association property="" javaType = "">
//        一对多
            <collection property="" javaType = "">
        </resultMap>
//        查询语句
        <select id = "" resultType = "">
                select * from table
        </select>

11、Spring常用的注解要会使用!!!!

1、容器注入组件
@Controller:控制层 
	@Requestmapping():用于映射web请求,包括访问路径和参数;
	@ResponseBody:支持将返回值放到response内,而不是页面,返回json数据
	@RequestBody:运行request的参数放在request体中,而不是在直接连级的地址后面
	@RestController:相当于Controller于ResponseBody
@Service:业务层   
@Repository:数据访问层
2、Bean注解
@Autowired:自动注入 (先根据类型再根据属性名称)
@Qualifier:直接指定要自动装配的组件的ID
3、Java 配置类相关注解
@Configuration:声明当前类为配置类    @Bean:注解在方法上,声明当前方法返回值为一个bean  
@ComponentScan:对Componen进行包扫描

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值