【Spring框架05】Bean使用补充,分层架构模式的优缺点

public class UserServiceTest {

@Test

public void test02() throws Exception {

ApplicationContext context = new ClassPathXmlApplicationContext(“spring.xml”);

UserController userController = (UserController)context.getBean(“lcy”);

userController.test();

}

}

4.配置spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package=“com.lcySpring”/>

二、模拟用户登录流程


1.基本的框架配置

在这里插入图片描述

2.定义用户信息java类

public class User {

private String username;

private String password;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

}

}

2.dao:验证用户密码是否准确

@Repository

public class UserDao {

private final String USERNAME=“lmr”;

private final String PASSWORD=“lcy”;

public User queryUserByName(String username){

if(usernamenull||username""){

return null;

}

else {

if(username.equals(USERNAME)){

User user=new User();

user.setPassword(PASSWORD);

user.setUsername(USERNAME);

return user;

}

else {

return null;

}

}

}

}

3.service:根据传入的用户名和密码进行格式判断并调用dao验证

@Service(“aaa”)

public class UserService {

@Resource

public UserDao userDao;

public String login(String username,String password) throws Exception{

if(username==null||"".equals(username)){

return “用户名为空”;

}

if(password==null||"".equals(password)){

return “密码为空”;

}

User user = userDao.queryUserByName(username);

if(user==null){

return “用户不存在”;

}

else{

if(password.equals(user.getPassword())){

return “登入成功”;

}

else {

return “登入失败”;

}

}

}

}

4.spring.xml中包扫描目录下的所有bean对象

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package=“com.lcySpring”/>

5.测试java类,进行用户登录模拟

public class UserServiceTest {

@Test

public void login() throws Exception{

ApplicationContext context = new ClassPathXmlApplicationContext(“spring.xml”);

UserService userService = (UserService)context.getBean(“aaa”);

String login =userService.login(“lmr”,“lcy”);

System.out.println(login);

}

}

三、Bean作用域


1.判断是否是单例

public class SpringScopeTest {

@Test

public void test01(){

ApplicationContext context = new ClassPathXmlApplicationContext(“spring.xml”);

System.out.println(context.isSingleton(“aaa”));

}

}

2.可以通过修改xml文件中bean标签的scope进行修改

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package=“com.lcySpring”/>

3.也可以通过标签设置

@Service(“aaa”)

@Scope(“prototype”)

4.设置懒加载

用到的时候调用就好了

四、Bean的生命周期


1.初始化监听

(1)在配置文件中通过指定init-method属性来完成

这里的init对应的是AccountDao中初始化的方法名

public class AccountDao implements InitializingBean {

public void init(){

System.out.println(“AccountDao>>>>>>>>>>>>>>>>>init”);

}

@Override

public void afterPropertiesSet() throws Exception {

System.out.println(“AccountDao>>>>>>>>>>>>>>>>>init”);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值