当前位置: 首页 > wzjs >正文

网站建设的问题网站改版的方式大致为

网站建设的问题,网站改版的方式大致为,网站正在维护中html,2017网站建设价目表1. 注解开发 上一节带大家了解了Spring的入门&#xff0c;是基于xml配置文件进行配置的&#xff0c;现在通过xml配置文件进行配置的方法已经淘汰了&#xff0c;现在用的比较多的是配置类进行配置。 1.1 导入坐标 <!-- 1.导入 spring-context 坐标 --><dependencie…

1. 注解开发

        上一节带大家了解了Spring的入门,是基于xml配置文件进行配置的,现在通过xml配置文件进行配置的方法已经淘汰了,现在用的比较多的是配置类进行配置。

1.1 导入坐标

<!--  1.导入 spring-context 坐标  --><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.12</version></dependency></dependencies>

1.2 创建接口层、实现类、配置类以及测试类

  • UserDao
package com.it.dao;public interface UserDao {public void save();}
  • UserDaoImpl,使用注解,将实现类交给Spring管理
package com.it.dao.impl;import com.it.dao.UserDao;
import org.springframework.stereotype.Component;// 2. 需要被Spring托管的bean,需要添加注解 Component
@Component
public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("实现UserDao");}
}
  • SpringConfig配置类,管理Bean对象
package com.it.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;/*** 3. 配置类,用于定义Spring的配置信息。* 使用@ComponentScan启用组件扫描,自动注册Bean。*/
@Configuration // 标记为Spring的配置类
@ComponentScan("com.it") // 指定需要扫描的包路径
public class SpringConfig {
}

 1.3 进行测试

package com.it;import com.it.config.SpringConfig;
import com.it.dao.UserDao;
import com.it.dao.impl.UserDaoImpl;
import com.it.service.impl.UserServiceImpl;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Test {public static void main(String[] args) {
//        创建Spring IoC容器,并加载配置类SpringConfigAnnotationConfigApplicationContext ioc =new AnnotationConfigApplicationContext(SpringConfig.class);// 从Spring IoC容器中获取UserDaoImpl的Bean实例UserDaoImpl userDao = ioc.getBean(UserDaoImpl.class);userDao.save();}
}

       再创建其他业务层道理是同样的,如果有一个service层,想要实现dao层的方法,该怎么实现呢?按照之前的逻辑需要在Service实现类中调用dao,如下

package com.it.service;public interface UserService {public void save2();
}
package com.it.service.impl;import com.it.dao.UserDao;
import com.it.service.UserService;
import org.springframework.stereotype.Component;@Component
public class UserServiceImpl implements UserService {private UserDao userDao;@Overridepublic void save2() {System.out.println("实现UserService");userDao.save();}
}
package com.it;import com.it.config.SpringConfig;
import com.it.dao.UserDao;
import com.it.dao.impl.UserDaoImpl;
import com.it.service.impl.UserServiceImpl;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Test {public static void main(String[] args) {
//        创建Spring IoC容器,并加载配置类SpringConfigAnnotationConfigApplicationContext ioc =new AnnotationConfigApplicationContext(SpringConfig.class);// 从Spring IoC容器中获取UserDaoImpl的Bean实例UserDaoImpl userDao = ioc.getBean(UserDaoImpl.class);userDao.save();UserServiceImpl userService = ioc.getBean(UserServiceImpl.class);userService.save2();}
}

        但是这样会发现控制台会报一个空指针异常,是因为我们没有实例化对象

        遇到事情不要慌~,只需要一个注解就可以完成实例化,即 @Autowired 注解

2. Bean配置

        在注解开发中,bean配置的作用范围也是通过注解实现的,注解为@Scope,有两个比较常见的模式:

  • 单例模式 singleton(默认)
  • 非单例模式 prototype

2.1 单例模式 singleton

package com.it.dao.impl;import com.it.dao.UserDao;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;// 2. 需要被Spring托管的bean,需要添加注解 Component
@Component
// @Scope("singleton") 表示该Bean在Spring容器中以单例模式存在,整个应用中共享一个实例,容器中只有一个对象
// @Scope("prototype") 表示每次请求该Bean时都会创建一个新的实例 每次用都会进行创建
@Scope("singleton")
public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("实现UserDao");}
}

2.2  非单例模式 prototype

package com.it.dao.impl;import com.it.dao.UserDao;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;// 2. 需要被Spring托管的bean,需要添加注解 Component
@Component
// @Scope("singleton") 表示该Bean在Spring容器中以单例模式存在,整个应用中共享一个实例,容器中只有一个对象
// @Scope("prototype") 表示每次请求该Bean时都会创建一个新的实例 每次用都会进行创建
@Scope("prototype")
public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("实现UserDao");}
}

        可以看到每创建一个对象,都是一个新的

3. Bean实例化

        Bean对象的创建方式有三种:

  • 构造方法方式(默认)

        当该类被Spring容器实例化时会调用构造方法

package com.it.dao.impl;import com.it.dao.UserDao;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;// 2. 需要被Spring托管的bean,需要添加注解 Component
@Component
// @Scope("singleton") 表示该Bean在Spring容器中以单例模式存在,整个应用中共享一个实例,容器中只有一个对象
// @Scope("prototype") 表示每次请求该Bean时都会创建一个新的实例 每次用都会进行创建
@Scope("prototype")
public class UserDaoImpl implements UserDao {
///*** 构造方法,用于创建UserDaoImpl实例* 当该类被Spring容器实例化时会调用此构造方法*/public UserDaoImpl() {System.out.println("UserDaoImpl被创建了");}@Overridepublic void save() {System.out.println("实现UserDao");}
}
  • 静态工厂方式(使用场景不多)

1. 创建实体类

package com.it.pojo;public class Students {private String name;}

2. 实例化

package com.it.dao.impl;import com.it.pojo.Students;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;@Component
public class StudentsDaoImpl {/*** 使用Spring的@Bean注解标识此方法将返回一个被Spring管理的Bean实例。* 此方法是一个静态工厂方法,用于创建并返回一个Students实例。* @return 一个新的Students对象实例*/@Beanpublic static Students getStudents() {System.out.println("静态工厂实例化");return new Students();}
}

3. 测试

  • 实例工厂方式

        实例工厂方式是用的最多的,常用来整合其他第三方技术

4. Bean生命周期

4.1 导入生命周期依赖坐标

<dependency><groupId>javax.activation</groupId><artifactId>javax.activation-api</artifactId><version>1.2.0</version></dependency>

4.2 Bean生命周期配置

  • init-method:指定初始化方法名称
  • destroy-method:指定销毁方法名称

5. Bean扫描注解

        Spring框架中提供了详细扫描注解,规范开发,控制层有@Controller,业务层有@Service,持久层(实现类)有@Repository,将上面的案例代码修改如下


5.1 注解@Autowired作用

         @Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
        @Autowired 默认是按照类去匹配,配合 @Qualifier 指定按照名称去装配 bean


文章转载自:

http://rJ5uB7Fl.qjdqj.cn
http://DKvZ4c9O.qjdqj.cn
http://rHau548O.qjdqj.cn
http://ZeAOTa9P.qjdqj.cn
http://RBktFY7J.qjdqj.cn
http://z63PxEqQ.qjdqj.cn
http://REIQ5gMA.qjdqj.cn
http://vdFv2lvM.qjdqj.cn
http://BYftbocT.qjdqj.cn
http://s9dj6uOp.qjdqj.cn
http://u1thrtJG.qjdqj.cn
http://ApLyOhMR.qjdqj.cn
http://p3MKKxN9.qjdqj.cn
http://vfkPGYjM.qjdqj.cn
http://ZkU9m9PM.qjdqj.cn
http://D6uMRHVR.qjdqj.cn
http://9YuI4w1w.qjdqj.cn
http://2cyW3K1R.qjdqj.cn
http://fv2kSbAR.qjdqj.cn
http://w3z7hUTy.qjdqj.cn
http://ksZoznTb.qjdqj.cn
http://LEzjq0iK.qjdqj.cn
http://pMTlCMwI.qjdqj.cn
http://fGqCZtDu.qjdqj.cn
http://VcQCoWv9.qjdqj.cn
http://deTbcJZ5.qjdqj.cn
http://eMpkHh4I.qjdqj.cn
http://HISFKbzL.qjdqj.cn
http://J3xI2g65.qjdqj.cn
http://J0p2rc4D.qjdqj.cn
http://www.dtcms.com/wzjs/664260.html

相关文章:

  • 站免费下载安装秋风最新消息
  • 怎么样网站建设监控系统网站开发
  • 江苏省工程建设协会网站广告传媒公司加盟代理
  • 厦门做外贸网站重庆装修贷
  • 免费开源网站系统有哪些世安建设有限网站
  • 怀宁县住房和建设局网站企业网站建设骆诗设计
  • 巨野住房和城乡建设局网站中国电信企业邮箱21cn
  • 体育用品网站模板北京城建道桥建设网站
  • 如何做阿里详情页面链接到外部网站西安建站
  • 腾讯云网站备案吗罗湖区seo排名
  • 易语言编程软件做网站西安论坛网站制作维护
  • 网站建设管理属于职业资格吗做是么网站
  • 短视频seo厂家青岛seo整站优化
  • 网站建设工作策划方案谷歌paypal下载
  • 重庆建网站 私单国内网站建设流程
  • 就有公司域名怎么建设网站简单网页制作素材
  • 太仓住房与城乡建设部网站如何用个门户网站做销售
  • 做钓鱼网站会被抓判刑吗宿迁网站建设宿迁
  • 做与食品安全有关的网站如何用云指做自己的网站
  • 公司网站年费申请个网站
  • 连接品硕网线做怎么弹网站引导交互 网站
  • 网站建设平台皆往乐云践新专家phpwind wordpress
  • 信用网站建设是国家统一部署免费广州网站开发维护
  • 实训小结网站建设网站备案信息查询
  • php网站开发cms重庆网站线上推广
  • 济南专业网站设计西安招标信息网官网
  • 用mcu做灯光效果网站门户网站做等保需要备案哪些
  • 有没有网站可以做试卷全网seo优化电话
  • 网站建设手机端官网推广 高端网站建设
  • 济南网站优化推广西安做建站的公司