springboot 启动类中显示ip
时间: 2023-03-25 09:00:50 浏览: 94
要在Spring Boot启动类中显示IP地址,可以使用以下代码:
```java
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApp {
public static void main(String[] args) throws UnknownHostException {
SpringApplication app = new SpringApplication(MyApp.class);
InetAddress ip = InetAddress.getLocalHost();
System.out.println("IP地址:" + ip.getHostAddress());
app.run(args);
}
}
```
在这个例子中,我们使用了`InetAddress`类来获取本地主机的IP地址,并在控制台输出。然后,我们使用`SpringApplication`类来启动Spring Boot应用程序。
相关问题
springboot 启动类中打印ip 和端口
可以使用以下代码在Spring Boot启动类中打印IP和端口:
```java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApp.class);
Environment env = app.run(args).getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
System.out.println("\n----------------------------------------------------------\n\t" +
"Application '{}' is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:{}\n\t" +
"External: \thttp://{}:{}\n" +
"----------------------------------------------------------",
env.getProperty("spring.application.name"),
env.getProperty("server.port"),
ip,
port);
}
}
```
其中,`InetAddress.getLocalHost().getHostAddress()`可以获取本机IP地址,`env.getProperty("server.port")`可以获取Spring Boot应用的端口号。
在springboot的aop中获取请求的ip
在Spring Boot应用中使用AOP (Aspect Oriented Programming) 获取HTTP请求的IP地址,你可以通过创建一个切面(Aspect),并在其中定义一个通知(Advice)来拦截并处理请求。以下是一个简单的示例:
首先,你需要添加`@Around`注解来创建一个环绕通知,这个通知将在每次HTTP请求之前执行。这里我们使用`HttpServletRequest`对象来获取客户端IP:
```java
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class RequestIpAspect {
@Around("execution(* com.example.yourpackage.*.controller.*(..))") // 替换为你实际的控制器包路径
public Object getIpAndProceed(ProceedingJoinPoint joinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String ipAddress = request.getRemoteAddr(); // 获取IP地址
System.out.println("Client IP address: " + ipAddress);
// 调用目标方法并返回结果
return joinPoint.proceed();
}
}
```
在这个例子中,`execution(* com.example.yourpackage.*.controller.*(..))`是一个切入点表达式,它匹配所有在指定包及其子包下的控制器类的方法。
当你启动Spring Boot应用,这个切面将自动生效,每当我们访问一个受此切面影响的控制器方法时,就会打印出客户端的IP地址。
阅读全文